{"version":3,"file":"main.js","mappings":"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;AACA;AAEA;AACA;AACA;AAEA;;AACA;AACA;AACA;AAEA;;AACA,CACA;;AACA;AAEA;;AACA;AACA;AACA;AAEA;;AACA,CAEA;;AAEA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA,CACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;AA4JO,IAAMoQ,SAAb;AAAM,QAAOA,SAAP,CAAgB;;;qBAATA;AAAS;;;UAATA;AAASC,gBAFNrQ,wDAEM;;;eAPP,CACPyK,yDADO,EAEP6E,uEAFO,EAGPC,8FAHO;AAIVe,cArJQ,CACL;AACAnG,IAAAA,0FAFK,EAGLC,mEAHK,EAILE,6DAAA,EAJK,EAML;AACAO,IAAAA,kGAPK,EAQLF,mGARK,EASLC,8EATK,EAULgD,wDAVK,EAYL;AACArD,IAAAA,+DAAA,CAAsBG,gGAAtB,CAbK,EAcLF,wDAdK,EAeL;AACAwD,IAAAA,sEAhBK,EAiBL;AAEA;AACAlD,IAAAA,4GApBK,EAqBL;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACAiD,IAAAA,yGAxCK,EA0CL;AACAE,IAAAA,6FA3CK,EA6CL;AACAmB,IAAAA,kFA9CK,EAgDL;AACAO,IAAAA,sGAjDK,EAoDL;AACAN,IAAAA,iIArDK,EAsDLtE,uGAtDK,EAuDLC,sGAvDK,EAwDLC,0HAxDK,EAyDLC,6HAzDK,EA0DLC,sIA1DK,EA2DLC,0HA3DK,EA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ACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACH,GA7FD,EAAYA,eAAe,KAAfA,eAAe,MAA3B,CA6FC;;AAAA,SA7FWA,eA6FX;AAAA,IA7FD;;;;;;;;;;;;;;;ACAO,IAAKC,YAOX;AAPD,aAAYA,YAAZ,EAAwB;AACpBA;AACAA;AACAA;AACAA;AACAA;AACAA;AACH,GAPD,EAAYA,YAAY,KAAZA,YAAY,MAAxB,CAOC;;AAAA,SAPWA,YAOX;AAAA,IAPD;;;;;;;;;;;;;;;ACAO,IAAKC,wBAQX;AARD,aAAYA,wBAAZ,EAAoC;AAChCA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACH,GARD,EAAYA,wBAAwB,KAAxBA,wBAAwB,MAApC,CAQC;;AAAA,SARWA,wBAQX;AAAA,IARD;;;;;;;;;;;;;;;;ACAO,IAAKC,yBASX;AATD,aAAYA,yBAAZ,EAAqC;AACjCA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACH,GATD,EAAYA,yBAAyB,KAAzBA,yBAAyB,MAArC,CASC;;AAAA,SATWA,yBASX;AAAA,IATD;AAUO,IAAKC,mCASX;AATD,aAAYA,mCAAZ,EAA+C;AAC3CA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACH,GATD,EAAYA,mCAAmC,KAAnCA,mCAAmC,MAA/C,CASC;;AAAA,SATWA,mCASX;AAAA,IATD;;;;;;;;;;;;;;;ACVO,IAAKC,wBAqIX;AArID,aAAYA,wBAAZ,EAAoC;AAChC;AACA;;AACA;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AAEA;;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AAEA;;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AAEA;;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AAEA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AAEA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AAEA;;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AAEA;;AACA;;AACAA;AAEA;;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AACA;;AACAA;AAEA;;AACA;;AACAA;AACA;;AACAA;AAEA;;AACA;;AACAA;AACAA;AACAA;AACH,GArID,EAAYA,wBAAwB,KAAxBA,wBAAwB,MAApC,CAqIC;;AAAA,SArIWA,wBAqIX;AAAA,IArID;;;;;;;;;;;;;;;ACAO,IAAKC,mBA2BX;AA3BD,aAAYA,mBAAZ,EAA+B;AAC3BA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACH,GA3BD,EAAYA,mBAAmB,KAAnBA,mBAAmB,MAA/B,CA2BC;;AAAA,SA3BWA,mBA2BX;AAAA,IA3BD;;;;;;;;;;;;;;;;ACCA;AAEM,MAAOC,eAAP,CAAsB;AAKxBC,cAAY;AACR,WAAO;AACH,0BAAoB,qBAAqBF,6EAAmB,CAAC,KAAKlG,IAAN,CAAxC,GAAsD;A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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AACAwH,iCAA6B,CAACX,OAAD,EAAkB9E,IAAlB,EAAmC1I,OAAnC,EAAmD;AAC5E,YAAM2G,OAAO,GAAyB,IAAIb,mFAAJ,EAAtC;AACAa,aAAO,CAAC+B,IAAR,GAAeA,IAAf;;AACA,UAAI1I,OAAJ,EAAa;AACT2G,eAAO,CAACyH,YAAR,GAAuBZ,OAAvB;AACA7G,eAAO,CAAC3G,OAAR,GAAkBA,OAAlB;AACH,OAHD,MAGO;AACH2G,eAAO,CAAC6G,OAAR,GAAkBA,OAAlB;AACH;;AACD,aAAO,KAAK/oB,OAAL,CAAaoV,IAAb,CAA2B,oCAA3B,EAAiE8M,OAAjE,CAAP;AACH;;AACD0H,iBAAa,CAAC3F,IAAD,EAA8B;AACvCA,UAAI,CAACje,OAAL,CAAa0hB,CAAC,IAAG;AACb,YAAIA,CAAC,CAACE,aAAF,IAAmBF,CAAC,CAACE,aAAF,CAAgB5qB,MAAvC,EAA+C;AAC3C0qB,WAAC,CAACE,aAAF,CAAgBC,IAAhB,CAAqB,CAAClI,CAAD,EAAImI,CAAJ,KAAUnI,CAAC,CAAC/X,EAAF,GAAOkgB,CAAC,CAAClgB,EAAxC;AACH;AACJ,OAJD;AAKH;AAED;;;AACAiiB,0BAAsB,CAACd,OAAD,EAAkB1J,QAAlB,EAAsCG,WAAtC,EAA8D;AAChF,YAAM0C,OAAO,GAAwB;AACjC6G,eAAO,EAAEA,OADwB;AAEjC1J,gBAAQ,EAAEA,QAFuB;AAGjCG,mBAAW,EAAEA;AAHoB,OAArC;AAMA,aAAO0C,OAAP;AACH;;AACD4H,iCAA6B,CAAC5H,OAAD,EAA6B;AACtD,aAAO,KAAKliB,OAAL,CAAaoV,IAAb,CAA2B,kCAA3B,EAA+D8M,OAA/D,CAAP;AACH;;AACD6H,8BAA0B,CAAC7H,OAAD,EAA6B;AACnD,aAAO,KAAK4H,6BAAL,CAAmC5H,OAAnC,CAAP;AACH;AAGD;;;AACA8H,yBAAqB,CAAC+F,0BAAD,EAAqCC,qBAArC,EAAkE;AACnF,YAAMvZ,QAAQ,GAAG;AACbsZ,kCAA0B,EAAEA,0BADf;AAEbC,6BAAqB,EAAEA;AAFV,OAAjB;AAIA,aAAO,KAAKhwB,OAAL,CAAaoV,IAAb,CAA2B,gCAA3B,EAA6DqB,QAA7D,CAAP;AACH;;AACDwT,sBAAkB,CAAC8F,0BAAD,EAAqCC,qBAArC,EAAkE;AAChF,aAAO,KAAKhG,qBAAL,CAA2B+F,0BAA3B,EAAuDC,qBAAvD,CAAP;AACH;AAGD;;;AACA9F,yBAAqB,CAAChI,OAAD,EAA2B;AAC5C,aAAO,KAAKliB,OAAL,CAAaoV,IAAb,CAA2B,gCAA3B,EAA6D8M,OAA7D,CAAP;AACH;;AACDkI,sBAAkB,CAAC2F,0BAAD,EAAqCpY,IAArC,EAAmDwS,KAAnD,EAAgE;AAC9E,YAAMjI,OAAO,GAAsB;AAC/B6G,eAAO,EAAEgH,0BADsB;AAE/BpY,YAAI,EAAEA,IAFyB;AAG/BwS,aAAK,EAAEA;AAHwB,OAAnC;AAKA,aAAO,KAAKD,qBAAL,CAA2BhI,OAA3B,CAAP;AACH;AAGD;;;AACAmI,0BAAsB,CAAChL,QAAD,EAAmB;AACrC,YAAM6C,OAAO,GAAuB;AAChC7C,gBAAQ,EAAEA;AADsB,OAApC;AAIA,aAAO,KAAKrf,OAAL,CAAaoV,IAAb,CAAoC,iCAApC,EAAuE8M,OAAvE,CAAP;AACH;;AACDoI,2BAAuB,CAACC,iBAAD,EAA4BC,YAA5B,EAAkD;AACrE,YAAMtI,OAAO,GAAwB;AACjCqI,yBAAiB,EAAEA,iBADc;AAEjCC,oBAAY,EAAEA;AAFmB,OAArC;AAKA,aAAO,KAAKxqB,OAAL,CAAaoV,IAAb,CAAoC,kCAApC,EAAwE8M,OAAxE,CAAP;AACH;;AACDuI,6BAAyB,CAAC1tB,IAAD,EAAa;AAClC,YAAMmlB,OAAO,GAA0B;AACnC5C,qBAAa,EAAEviB;AADoB,OAAvC;AAIA,aAAO,KAAKiD,OAAL,CAAaoV,IAAb,CAAoC,oCAApC,EAA0E8M,OAA1E,CAAP;AACH;;AACDwI,4BAAwB,CAACzG,IAAD,EAAiC;AACrD,YAAM/B,OAAO,GAAyB;AAClCyI,kBAAU,EAAE1G;AADsB,OAAtC;AAIA,aAAO,KAAKjkB,OAAL,CAAaoV,IAAb,CAAoC,mCAApC,EAAyE8M,OAAzE,CAAP;AACH;;AAED0I,uBAAmB,CAACvL,QAAD,EAAmB;AAClC,aAAO,KAAKgL,sBAAL,CAA4BhL,QAA5B,CAAP;AACH;;AACDwL,wBAAoB,CAACC,YAAD,EAAuBN,YAAvB,EAA6C;AAC7D,aAAO,KAAKF,uBAAL,CAA6BQ,YAA7B,EAA2CN,YAA3C,CAAP;AACH;;AACDO,0BAAsB,CAAChuB,IAAD,EAAa;AAC/B,aAAO,KAAK0tB,yBAAL,CAA+B1tB,IAA/B,CAAP;AACH;;AACDiuB,yBAAqB,CAAC/G,IAAD,EAAiC;AAClD,aAAO,KAAKyG,wBAAL,CAA8BzG,IAA9B,CAAP;AACH;AAGD;;;AACAgH,6BAAyB,CAACzL,WAAD,EAAyB;AAC9C,YAAM0C,OAAO,GAA0B;AACnC1C,mBAAW,EAAEA;AADsB,OAAvC;AAIA,aAAO,KAAKxf,OAAL,CAAaoV,IAAb,CAAoC,oCAApC,EAA0E8M,OAA1E,CAAP;AACH;;AACDgJ,8BAA0B,CAAC5L,aAAD,EAAwB6L,oBAAxB,EAAsDC,eAAtD,EAAkF;AACxG,YAAMlJ,OAAO,GAA2B;AACpC5C,qBAAa,EAAEA,aADqB;AAEpC6L,4BAAoB,EAAEA,oBAFc;AAGpCC,uBAAe,EAAEA;AAHmB,OAAxC;AAMA,aAAO,KAAKprB,OAAL,CAAaoV,IAAb,CAAoC,qCAApC,EAA2E8M,OAA3E,CAAP;AACH;;AACDmJ,gCAA4B,CAAC/L,aAAD,EAAwBviB,IAAxB,EAAoC;AAC5D,YAAMmlB,OAAO,GAA6B;AACtC5C,qBAAa,EAAEA,aADuB;AAEtCG,wBAAgB,EAAE1iB;AAFoB,OAA1C;AAKA,aAAO,KAAKiD,OAAL,CAAaoV,IAAb,CAAoC,uCAApC,EAA6E8M,OAA7E,CAAP;AACH;;AACDoJ,+BAA2B,CAACrH,IAAD,EAAoC;AAC3D,YAAM/B,OAAO,GAA4B;AACrCyI,kBAAU,EAAE1G;AADyB,OAAzC;AAIA,aAAO,KAAKjkB,OAAL,CAAaoV,IAAb,CAAoC,sCAApC,EAA4E8M,OAA5E,CAAP;AACH;;AAEDqJ,0BAAsB,CAAC/L,WAAD,EAAyB;AAC3C,aAAO,KAAKyL,yBAAL,CAA+BzL,WAA/B,CAAP;AACH;;AACDgM,2BAAuB,CAAClM,aAAD,EAAwB6L,oBAAxB,EAAsDC,eAAtD,EAAkF;AACrG,aAAO,KAAKF,0BAAL,CAAgC5L,aAAhC,EAA+C6L,oBAA/C,EAAqEC,eAArE,CAAP;AACH;;AACDK,6BAAyB,CAACnM,aAAD,EAAwBviB,IAAxB,EAAoC;AACzD,aAAO,KAAKsuB,4BAAL,CAAkC/L,aAAlC,EAAiDviB,IAAjD,CAAP;AACH;;AACD2uB,4BAAwB,CAACzH,IAAD,EAAoC;AACxD,aAAO,KAAKqH,2BAAL,CAAiCrH,IAAjC,CAAP;AACH,KA1nBgC,CA+nBjC;AACA;AACA;;;AACAgM,4BAAwB,CAACpR,OAAD,EAAgB;AACpC,aAAO,KAAK7e,OAAL,CAAaiF,GAAb,CAA4B,gDAAgD4Z,OAA5E,CAAP;AACH,KApoBgC,CAwoBjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;;;AACAqN,kCAA8B,CAACF,SAAD,EAAsC;AAChE,aAAO,KAAKhsB,OAAL,CAAaoV,IAAb,CAA+C,2CAA/C,EAA4F4W,SAA5F,CAAP;AACH;;AACDG,+BAA2B,CAACH,SAAD,EAAsC;AAC7D,aAAO,KAAKE,8BAAL,CAAoCF,SAApC,EACFtqB,IADE,CAEC9D,oDAAG,CAACsyB,gBAAgB,IAAI7N,wGAAA,CAA4C,IAAI2M,wFAAJ,EAA5C,EAA+EkB,gBAA/E,CAArB,CAFJ,CAAP;AAIH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AACA3D,+BAA2B,CAACP,SAAD,EAAsC;AAC7D,aAAO,KAAKhsB,OAAL,CAAaoV,IAAb,CAA2C,uCAA3C,EAAoF4W,SAApF,CAAP;AACH;;AACDQ,4BAAwB,CAACR,SAAD,EAAsC;AAC1D,aAAO,KAAKO,2BAAL,CAAiCP,SAAjC,EACFtqB,IADE,CAEC9D,oDAAG,CAACF,CAAC,IAAIA,CAAC,CAACE,GAAF,CAAM8pB,CAAC,IAAIrF,wGAAA,CAA4C,IAAIqM,2EAAJ,EAA5C,EAAyEhH,CAAzE,CAAX,CAAN,CAFJ,CAAP;AAIH;AAED;;;AACA2E,2BAAuB,CAACL,SAAD,EAAsC;AACzD,aAAO,KAAKhsB,OAAL,CAAaoV,IAAb,CAA6C,mCAA7C,EAAkF4W,SAAlF,CAAP;AACH;;AACDM,wBAAoB,CAACN,SAAD,EAAsC;AACtD,aAAO,KAAKK,uBAAL,CAA6BL,SAA7B,EACFtqB,IADE,CAEC9D,oDAAG,CAACF,CAAC,IAAI2kB,wGAAA,CAA4C,IAAIiM,oFAAJ,EAA5C,EAA6E5wB,CAA7E,CAAN,CAFJ,CAAP;AAIH;;AAGD+uB,mCAA+B,CAACC,eAAD,EAAqC9D,OAArC,EAAoD;AAC/E,aAAO,KAAK5oB,OAAL,CAAaoV,IAAb,CAAyC,uDAAuDwT,OAAhG,EAAyG8D,eAAzG,CAAP;AACH;;AACDC,8BAA0B,CAAC/D,OAAD,EAAgB;AACtC,aAAO,KAAK5oB,OAAL,CAAaiF,GAAb,CAAwC,6CAA6C2jB,OAArF,CAAP;AACH;AACD;;;AACAgE,yBAAqB,CAAChE,OAAD,EAAkBiE,WAAuB,IAAzC,EAA6C;AAC9D,UAAI,KAAK1E,eAAT,EAA0B;AACtB,cAAM2E,SAAS,GAAG,KAAK3E,eAAL,CAAqB4E,SAArB,CAA+BrvB,CAAC,IAAIA,CAAC,CAACkrB,OAAF,KAAcA,OAAlD,CAAlB;;AACA,YAAIkE,SAAS,GAAG,CAAC,CAAjB,EAAoB;AAChB,eAAKH,0BAAL,CAAgC/D,OAAhC,EACK1nB,SADL,CACgBsnB,IAAD,IAAgC;AACvC,kBAAMwE,UAAU,GAAG,KAAK7E,eAAL,CAAqB2E,SAArB,CAAnB;AACAtE,gBAAI,CAAC5gB,EAAL,GAAUolB,UAAU,CAACplB,EAArB;AACAya,YAAAA,wGAAA,CAA4C2K,UAA5C,EAAwDxE,IAAxD,EAHuC,CAIvC;;AACA,gBAAIwE,UAAU,CAACjF,UAAf,EAA2B;AACvBiF,wBAAU,CAACjF,UAAX,GAAwBiF,UAAU,CAACjF,UAAX,CAAsBnqB,GAAtB,CAA0BoqB,KAAK,IAAI3F,wGAAA,CAA4C,IAAIE,kDAAJ,EAA5C,EAAyDyF,KAAzD,CAAnC,CAAxB;AACH;;AAED,gBAAI6E,QAAJ,EAAc;AACVA,sBAAQ;AACX,aAXsC,CAYvC;AACA;AACA;;AACH,WAhBL;AAiBH;AACJ;AACJ;AACD;;;AACAI,mCAA+B,CAAC5N,QAAD,EAAiB;AAC5C;AACA,UAAI,KAAK8I,eAAT,EAA0B;AACtB,aAAKA,eAAL,CAAqBniB,OAArB,CAA6B,CAAC0hB,CAAD,EAAIvqB,CAAJ,KAAS;AAClC,cAAIuqB,CAAC,CAACrI,QAAF,IAAcqI,CAAC,CAACrI,QAAF,CAAWtiB,IAAX,KAAoBsiB,QAAtC,EAAgD;AAC5C;AACA,iBAAKsN,0BAAL,CAAgCjF,CAAC,CAACkB,OAAlC,EACK1nB,SADL,CACgBsnB,IAAD,IAAgC;AACvC,oBAAMwE,UAAU,GAAG,KAAK7E,eAAL,CAAqBhrB,CAArB,CAAnB;AACAklB,cAAAA,wGAAA,CAA4C2K,UAA5C,EAAwDxE,IAAxD,EAFuC,CAGvC;;AACA,kBAAIwE,UAAU,CAACjF,UAAf,EAA2B;AACvBiF,0BAAU,CAACjF,UAAX,GAAwBiF,UAAU,CAACjF,UAAX,CAAsBnqB,GAAtB,CAA0BoqB,KAAK,IAAI3F,wGAAA,CAA4C,IAAIE,kDAAJ,EAA5C,EAAyDyF,KAAzD,CAAnC,CAAxB;AACH,eANsC,CAOvC;AACA;AACA;AACA;;AACH,aAZL;AAaH;AACJ,SAjBD;AAkBH;AACJ;;AACDkF,sCAAkC,CAAC7N,QAAD,EAAmBG,WAAnB,EAAsC;AACpE;AACA,UAAI,KAAK2I,eAAT,EAA0B;AACtB,aAAKA,eAAL,CAAqBniB,OAArB,CAA6B,CAAC0hB,CAAD,EAAIvqB,CAAJ,KAAS;AAClC,cAAIuqB,CAAC,CAACrI,QAAF,IAAcqI,CAAC,CAACrI,QAAF,CAAWtiB,IAAX,KAAoBsiB,QAAlC,IACGqI,CAAC,CAAClI,WADL,IACoBkI,CAAC,CAAClI,WAAF,CAAcziB,IAAd,KAAuByiB,WAD/C,EAC4D;AACxD;AACA,iBAAKmN,0BAAL,CAAgCjF,CAAC,CAACkB,OAAlC,EACK1nB,SADL,CACgBsnB,IAAD,IAAgC;AACvC,oBAAMwE,UAAU,GAAG,KAAK7E,eAAL,CAAqBhrB,CAArB,CAAnB;AACAklB,cAAAA,wGAAA,CAA4C2K,UAA5C,EAAwDxE,IAAxD,EAFuC,CAGvC;;AACA,kBAAIwE,UAAU,CAACjF,UAAf,EAA2B;AACvBiF,0BAAU,CAACjF,UAAX,GAAwBiF,UAAU,CAACjF,UAAX,CAAsBnqB,GAAtB,CAA0BoqB,KAAK,IAAI3F,wGAAA,CAA4C,IAAIE,kDAAJ,EAA5C,EAAyDyF,KAAzD,CAAnC,CAAxB;AACH,eANsC,CAOvC;AACA;AACA;AACA;AACA;;AACH,aAbL;AAcH;AACJ,SAnBD;AAoBH;AACJ;;AAGDmF,sBAAkB,CAACvE,OAAD,EAAgB;AAC9B,aAAO,KAAK5oB,OAAL,CAAaiF,GAAb,CAA4B,yCAAyC2jB,OAArE,CAAP;AACH;AACD;;;AACAwE,mCAA+B,CAACC,gBAAD,EAAyB;AACpD,YAAMvlB,IAAI,GAAG;AACTulB,wBAAgB,EAAEA;AADT,OAAb;AAGA,aAAO,KAAKrtB,OAAL,CAAaoV,IAAb,CAAkB,8CAAlB,EAAkEtN,IAAlE,CAAP;AACH;AACD;;;AACAwlB,sCAAkC,CAACD,gBAAD,EAAyB;AACvD,YAAMvlB,IAAI,GAAG;AACTulB,wBAAgB,EAAEA;AADT,OAAb;AAGA,aAAO,KAAKrtB,OAAL,CAAaoV,IAAb,CAAkB,iDAAlB,EAAqEtN,IAArE,CAAP;AACH;;AAKD8lB,mBAAe,CAAChF,OAAD,EAAkBhnB,MAAlB,EAAgC;AAC3C,aAAO,KAAK5B,OAAL,CAAaoV,IAAb,CAA2B,6BAA3B,EAA0D;AAC7DwT,eAAO,EAAEA,OADoD;AAE7DhnB,cAAM,EAAEA;AAFqD,OAA1D,CAAP;AAIH;;AACDksB,8BAA0B,CAAClF,OAAD,EAAkBmF,iBAAyB,CAA3C,EAA4C;AAClE,aAAO,KAAK/tB,OAAL,CAAaiF,GAAb,CAA0C,mDAAmD2jB,OAAnD,GAA6D,mBAA7D,GAAmFmF,cAA7H,CAAP;AACH,KAj0BgC,CAu0BjC;;;AACAoC,sCAAkC;AAC9B,aAAO,KAAKnwB,OAAL,CAAaoV,IAAb,CAA2B,wCAA3B,EAAqE,EAArE,CAAP;AACH,KA10BgC,CA40BjC;;;AACA8Y,wBAAoB,CAChB3S,OADgB,EAEhBoO,YAFgB,EAGhBthB,SAHgB,EAIhB8lB,KAJgB,EAIF;AAEd,aAAO,KAAKnuB,OAAL,CAAaoV,IAAb,CAAuB,4CAAvB,EAAqE;AACxEmG,eAAO,EAAEA,OAD+D;AAExEoO,oBAAY,EAAEA,YAF0D;AAGxEthB,iBAAS,EAAEA,SAH6D;AAIxE8lB,aAAK,EAAEA;AAJiE,OAArE,CAAP;AAMH;;AAz1BgC;;;qBAAxBmB,0BAAwB3lB,uDAAAA,CAAAA,6EAAAA;AAAA;;;WAAxB2lB;AAAwB9wB,aAAxB8wB,wBAAwB;AAAA7wB,gBAFrB;;AAEhB,SAAa6wB,wBAAb;AAAA;;;;;;;;;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AAEM,MAAOe,WAAP,CAAkB;AAAxB/xB;AAWI,4BAA2B,EAA3B;AAwBA,mBAAyB,EAAzB;AACA,wBAAwB,KAAxB;AAEA,0BAAyB,CAAzB;AAGA,+BAA8B,CAA9B;AA0BH,GAnEuB,CA2CpB;;;AACAsxB,4BAA0B;AACtB,SAAKU,sBAAL,CAA4BtqB,OAA5B,CAAoCnE,CAAC,IAAG;AACpC,UAAIA,CAAC,CAAC0uB,SAAF,KAAgBnC,0FAApB,EAAkD;AAC9CvsB,SAAC,CAAC4uB,SAAF,GAAcL,+FAAA,CAAsChP,iEAAY,CAACvf,CAAC,CAAC0uB,SAAH,CAAZ,CAA0Bv4B,QAA1B,EAAtC,CAAd;AACH,OAFD,MAEO;AACH6J,SAAC,CAAC4uB,SAAF,GAAcL,+FAAA,CAAsC/B,yEAAa,CAACxsB,CAAC,CAAC6uB,SAAH,CAAb,CAA2B14B,QAA3B,EAAtC,CAAd;AACH;AACJ,KAND;AAOH,GApDmB,CAqDpB;;;AACA24B,2BAAyB;AACrB,UAAMC,UAAU,GAAG,KAAKC,mBAAL,CAAyB,GAAzB,KAAiC,CAApD;AACA,UAAMrV,CAAC,GAAG5f,IAAI,CAACC,KAAL,CAAY+0B,UAAU,GAAG,KAAKE,iBAAnB,GAAwC,GAAnD,CAAV;AACA,SAAKC,mBAAL,GAA2BvV,CAA3B;AACH,GA1DmB,CA2DpB;;;AACAwV,wBAAsB;AAClB,SAAKC,gBAAL,GAAwB,KAAKC,WAAL,CAAiB,CAAjB,IAClB,GADkB,GACZ,KAAKA,WAAL,CAAiB,CAAjB,EAAoBl5B,QAApB,GAA+BC,QAA/B,CAAwC,CAAxC,EAA2C,GAA3C,CADY,GAElB,GAFkB,GAEZ,KAAKi5B,WAAL,CAAiB,CAAjB,EAAoBl5B,QAApB,GAA+BC,QAA/B,CAAwC,CAAxC,EAA2C,GAA3C,CAFZ;AAIH;;AAjEmB;;;;;;;;;;;;;;;ACZjB,IAAKk5B,WAKX;AALD,aAAYA,WAAZ,EAAuB;AACnBA;AACAA;AACAA;AACAA;AACH,GALD,EAAYA,WAAW,KAAXA,WAAW,MAAvB,CAKC;;AAAA,SALWA,WAKX;AAAA,IALD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEA;AAEA;AAEA;AAIA;AACA;AAEA;AACA;AAEA;;;AASO,IAAMI,cAAb;AAAM,QAAOA,cAAP,CAAqB;AAoCvBjzB,gBACY0B,OADZ,EAC+B;AAAnB;AAnCZ,4BAAiD;AAC7CwxB,wBAAgB,EAAEL,oEAD2B;AAE7CO,4BAAoB,EAAEP,oEAFuB;AAG7CQ,2BAAmB,EAAER,mEAHwB;AAI7CU,+BAAuB,EAAEV,mEAJoB;AAK7CW,yBAAiB,EAAEX,iEAL0B;AAM7Ca,6BAAqB,EAAEb,iEAAgBY;AANM,OAAjD;AAQA,8BAA8C;AAC1CE,YAAI,EAAE,EADoC;AAE1CC,iBAAS,EAAE,IAF+B;AAG1CC,iBAAS,EAAE,IAH+B;AAI1CC,gBAAQ,EAAE,IAJgC;AAK1CC,kBAAU,EAAE,IAL8B;AAM1CC,0BAAkB,EAAE,MANsB;AAO1CC,cAAM,EAAE,MAPkC;AAQ1CX,cAAM,EAAE,IARkC;AAS1CG,YAAI,EAAE,MAToC;AAU1CS,cAAM,EAAE,IAVkC;AAW1CC,cAAM,EAAE,IAXkC;AAY1CC,kBAAU,EAAE;AAZ8B,OAA9C;AAuBA,uBAAsC,IAAI3M,yCAAJ,EAAtC;AACA,sBAAoC,IAAIA,yCAAJ,EAApC;AAKI,WAAK4M,SAAL,CAAezxB,SAAf,CAAyBqX,CAAC,IAAG;AACzB,aAAKqa,QAAL,GAAgBra,CAAhB;AACH,OAFD;AAGH;AAED;;;AACAsa,iDAA6C,CAACtL,eAAD,EAAiC;AAC1E,aAAO,KAAKvnB,OAAL,CAAaoV,IAAb,CAAmC,qCAAnC,EAA0EmS,eAAe,CAACpI,UAAhB,EAA1E,EACFzd,IADE,CAECpC,mDAAG,CAACiZ,CAAC,IAAG;AACJ,cAAM0L,IAAI,GAAG1L,CAAC,CAAC0L,IAAF,CAAOrmB,GAAP,CAAWF,CAAC,IAAI2kB,gFAAA,CAAoB,IAAIgO,uDAAJ,EAApB,EAAuC3yB,CAAvC,CAAhB,CAAb;AACAumB,YAAI,CAACje,OAAL,CAAatI,CAAC,IAAG;AACbA,WAAC,CAACkyB,0BAAF;AACAlyB,WAAC,CAACizB,yBAAF;AACAjzB,WAAC,CAACszB,sBAAF;AACH,SAJD;AAKA/2B,eAAO,CAACC,GAAR,CAAY+pB,IAAZ;AAEA1L,SAAC,CAAC0L,IAAF,GAASA,IAAT;AACH,OAVE,CAFJ,CAAP;AAcH;;AACD6O,0CAAsC,CAACvL,eAAD,EAAiC;AACnE,aAAO,KAAKwL,8CAAL,CAAoDxL,eAApD,EACFrmB,SADE,CACQqX,CAAC,IAAG;AACX,aAAKya,yCAAL,CAA+Cza,CAA/C;AACH,OAHE,CAAP;AAIH;;AACDwa,kDAA8C,CAACxL,eAAD,EAAiC;AAC3E,aAAO,KAAKsL,6CAAL,CAAmDtL,eAAnD,EACF7lB,IADE,CAECpC,mDAAG,CAACiZ,CAAC,IAAG;AACJ,aAAKya,yCAAL,CAA+Cza,CAA/C;AACH,OAFE,CAFJ,CAAP;AAMH;;AACDya,6CAAyC,CAACza,CAAD,EAAmB;AACxD,WAAKoa,SAAL,CAAerwB,IAAf,CAAoBiW,CAApB;AACH;AAED;;;AACAoQ,0BAAsB,CAACsK,WAAD,EAAoB;AACtC,aAAO,KAAKjzB,OAAL,CAAaiF,GAAb,CAAgC,kCAAkCguB,WAAlE,CAAP;AACH;AAED;;;AACAjJ,yBAAqB,CAACkJ,gBAAD,EAA2BD,WAA3B,EAA8C;AAC/D,YAAMxc,QAAQ,GAAQ;AAClByc,wBAAgB,EAAEA,gBADA;AAElBD,mBAAW,EAAEA;AAFK,OAAtB;AAIA,aAAO,KAAKjzB,OAAL,CAAaoV,IAAb,CAA0B,sBAA1B,EAAkDqB,QAAlD,CAAP;AACH;;AACDwT,sBAAkB,CAACiJ,gBAAD,EAA2BD,WAA3B,EAA8C;AAC5D,aAAO,KAAKjJ,qBAAL,CAA2BkJ,gBAA3B,EAA6CD,WAA7C,CAAP;AACH;AAED;;;AACAE,oCAAgC,CAACF,WAAD,EAAsBG,OAAtB,EAAsC;AAClE,YAAMlR,OAAO,GAAiC;AAC1C+Q,mBAAW,EAAEA,WAD6B;AAE1CG,eAAO,EAAEA;AAFiC,OAA9C;AAIA,aAAO,KAAKpzB,OAAL,CAAaoV,IAAb,CAA0B,mBAA1B,EAA+C8M,OAA/C,CAAP;AACH;;AACDmR,iCAA6B,CAACJ,WAAD,EAAsBG,OAAtB,EAAsC;AAC/D,aAAO,KAAKD,gCAAL,CAAsCF,WAAtC,EAAmDG,OAAnD,CAAP;AACH;;AACDE,sBAAkB;AACd,UAAI,KAAKC,OAAL,IAAgB,IAApB,EAA0B;AACtB,eAAO,KAAKC,sBAAL,EAAP;AACH,OAFD,MAEO;AACH,eAAOp0B,wCAAE,CAAC,KAAKm0B,OAAN,CAAT;AACH;AACJ;;AACDE,uBAAmB;AACf,aAAO,KAAKD,sBAAL,GACF9xB,IADE,CAEC2vB,wDAAO,CAAC3zB,CAAC,IAAI,KAAKg2B,0BAAL,CAAgCh2B,CAAhC,CAAN,CAFR,EAGCE,oDAAG,CAACF,CAAC,IAAIA,CAAC,KAAK0zB,4CAAK,EAAX,GAAgB,IAAhB,GAAuB1zB,CAA7B,CAHJ,EAIC4B,mDAAG,CAAC5B,CAAC,IAAG;AAAG,aAAKi2B,kBAAL,CAAwBj2B,CAAxB;AAA6B,OAArC,CAJJ,CAAP;AAMH;;AACO81B,0BAAsB;AAC1B,aAAO,KAAKxzB,OAAL,CAAaiF,GAAb,CAAiC,mBAAjC,CAAP;AACH;;AACOyuB,8BAA0B,CAACH,OAAD,EAAa;AAC3C,UAAIA,OAAO,KAAKnC,4CAAK,EAArB,EAAyB;AACrB,eAAOhyB,wCAAE,CAAC,IAAD,CAAT;AACH,OAFD,MAEO,IAAKm0B,OAA0B,CAACrL,KAA3B,KAAqC,CAA1C,EAA6C;AAChD,eAAO9oB,wCAAE,CAACm0B,OAAD,CAAT;AACH,OAFM,MAEA;AACH;AACA,cAAMK,EAAE,GAAGL,OAAX;AACA,cAAMM,YAAY,GAAGD,EAAE,CAAC3P,IAAH,CAAQrmB,GAAR,CAAaF,CAAD,IAAOA,CAAC,CAACkK,EAArB,EAAyB9J,IAAzB,EAArB;AACAwzB,QAAAA,sHAAA,CAA6BsC,EAAE,CAAC3P,IAAhC;AACA,cAAM8P,SAAS,GAAGH,EAAE,CAAC3P,IAAH,CAAQrmB,GAAR,CAAYF,CAAC,IAAIA,CAAC,CAACkK,EAAnB,EAAuB9J,IAAvB,EAAlB;;AAEA,YAAI+1B,YAAY,KAAKE,SAArB,EAAgC;AAC5B,iBAAO30B,wCAAE,CAACm0B,OAAD,CAAT;AACH,SAFD,MAEO;AAEH;AACA,gBAAMS,gBAAgB,GAAG1C,4HAAA,CAAmCsC,EAAE,CAAC3P,IAAtC,CAAzB;AACA,iBAAO,KAAKiQ,oBAAL,CAA0BF,gBAA1B,EACFtyB,IADE,CACG9D,oDAAG,CAACF,CAAC,IAAI61B,OAAN,CADN,CAAP;AAEH;AACJ;AACJ;;AACOI,sBAAkB,CAACJ,OAAD,EAAwB;AAC9C,UAAIA,OAAO,IAAI,IAAf,EAAqB;AACjB,aAAKA,OAAL,GAAeA,OAAf;AACA,aAAKY,QAAL,CAAc7xB,IAAd,CAAmBixB,OAAnB;AACH;AACJ;;AAEOa,2BAAuB,CAACnQ,IAAD,EAAuC;AAClE,YAAM/B,OAAO,GAA+B;AACxCyI,kBAAU,EAAE1G;AAD4B,OAA5C;AAIA,aAAO,KAAKjkB,OAAL,CAAaoV,IAAb,CAAoC,yBAApC,EAA+D8M,OAA/D,CAAP;AACH;;AACDgS,wBAAoB,CAACjQ,IAAD,EAAuC;AACvD,aAAO,KAAKmQ,uBAAL,CAA6BnQ,IAA7B,CAAP;AACH;AAGD;;;AACAoQ,oBAAgB;AACZ,UAAI,KAAKC,iBAAT,EAA4B;AACxB,eAAOl1B,wCAAE,CAAC,KAAKk1B,iBAAN,CAAT;AACH,OAFD,MAEO;AACH,eAAO,KAAKC,wBAAL,GACF7yB,IADE,CAEC9D,oDAAG,CAACghB,KAAK,IAAG;AACR,gBAAM0V,iBAAiB,GAAG,EAA1B;AACAE,gBAAM,CAACC,IAAP,CAAY7V,KAAZ,EAAmB5Y,OAAnB,CAA2B0uB,WAAW,IAAG;AACrC,kBAAMrV,QAAQ,GAAoBgD,wGAAA,CAA4C,IAAIvE,6FAAJ,EAA5C,EAAmE;AACjGnG,kBAAI,EAAE+c,WAD2F;AAEjGvb,kBAAI,EAAE,EAF2F;AAGjGqG,yBAAW,EAAE;AAHoF,aAAnE,CAAlC;AAMAgV,kBAAM,CAACC,IAAP,CAAY7V,KAAK,CAAC8V,WAAD,CAAjB,EAAgC1uB,OAAhC,CAAwC2uB,cAAc,IAAG;AACrD,oBAAMnV,WAAW,GAAuB;AACpC7H,oBAAI,EAAEgd,cAD8B;AAEpCzM,qBAAK,EAAEtJ,KAAK,CAAC8V,WAAD,CAAL,CAAmBC,cAAnB;AAF6B,eAAxC;AAIAtV,sBAAQ,CAACG,WAAT,CAAqBzmB,IAArB,CAA0BymB,WAA1B;AACH,aAND;AASA8U,6BAAiB,CAACv7B,IAAlB,CAAuBsmB,QAAvB;AACH,WAjBD;AAmBA,iBAAOiV,iBAAP;AACH,SAtBE,CAFJ,EAyBCh1B,mDAAG,CAACs1B,SAAS,IAAG;AACZ,eAAKN,iBAAL,GAAyBM,SAAzB;AACH,SAFE,CAzBJ,CAAP;AA6BH;AACJ;;AACDL,4BAAwB;AACpB,aAAO,KAAKv0B,OAAL,CAAaiF,GAAb,CAA+D,yBAA/D,CAAP;AACH;AAED;;;AACA4vB,gBAAY;AACR,UAAI,KAAKC,QAAT,EAAmB;AACf,eAAO11B,wCAAE,CAAC;AACN21B,cAAI,EAAE,KAAKD,QADL;AAENE,qBAAW,EAAE,KAAKC;AAFZ,SAAD,CAAT;AAIH,OALD,MAKO;AACH,eAAO,KAAKC,oBAAL,GACFxzB,IADE,CAEC9D,oDAAG,CAACghB,KAAK,IAAG;AACR,gBAAMuW,MAAM,GAAG9S,wGAAf;AACAzD,eAAK,CAACmW,IAAN,GAAanW,KAAK,CAACmW,IAAN,CAAWn3B,GAAX,CAAeF,CAAC,IAAIy3B,MAAM,CAAC,IAAIlX,gGAAJ,EAAD,EAAyBvgB,CAAzB,CAA1B,CAAb;AACAkhB,eAAK,CAACoW,WAAN,GAAoBpW,KAAK,CAACoW,WAAN,CAAkBp3B,GAAlB,CAAsBF,CAAC,IAAIy3B,MAAM,CAAC,IAAIlX,gGAAJ,EAAD,EAAyBvgB,CAAzB,CAAjC,CAApB,CAHQ,CAIR;;AAEA,iBAAOkhB,KAAP;AACH,SAPE,CAFJ,EAUCtf,mDAAG,CAACsf,KAAK,IAAG;AACR,eAAKkW,QAAL,GAAgBlW,KAAK,CAACmW,IAAtB;AACA,eAAKE,cAAL,GAAsBrW,KAAK,CAACoW,WAA5B;AACH,SAHE,CAVJ,CAAP;AAeH;AACJ;;AACDE,wBAAoB;AAChB,aAAO,KAAKl1B,OAAL,CAAaiF,GAAb,CAAwD,qBAAxD,CAAP;AACH;AAGD;;;AACAmwB,+BAA2B,CAACpJ,SAAD,EAAwC;AAC/D,aAAO,KAAKhsB,OAAL,CAAaoV,IAAb,CAAiE,qBAAjE,EAAwF4W,SAAxF,CAAP;AACH;;AACDqJ,4BAAwB,CAACrJ,SAAD,EAAwC;AAC5D,aAAO,KAAKoJ,2BAAL,CAAiCpJ,SAAjC,CAAP;AACH;AAED;;;AACAsJ,4BAAwB,CAACtJ,SAAD,EAAwC;AAC5D,aAAO,KAAKhsB,OAAL,CAAaoV,IAAb,CAAiC,iBAAjC,EAAoD4W,SAApD,CAAP;AACH;;AACDuJ,yBAAqB,CAACvJ,SAAD,EAAwC;AACzD,aAAO,KAAKsJ,wBAAL,CAA8BtJ,SAA9B,CAAP;AACH;AAGD;;;AACAwJ,oCAAgC,CAAC3W,OAAD,EAAgB;AAC5C,aAAO,KAAK7e,OAAL,CAAaiF,GAAb,CAA2B,8BAA8B4Z,OAAzD,CAAP;AACH;AAKD;;;AACA4W,0BAAsB,CAACzJ,SAAD,EAAkC;AACpD,aAAO,KAAKhsB,OAAL,CAAaoV,IAAb,CAAgC,gCAAhC,EAAkE4W,SAAlE,CAAP;AACH;;AACD0J,uBAAmB,CAAC1J,SAAD,EAAkC;AACjD,aAAO,KAAKyJ,sBAAL,CAA4BzJ,SAA5B,CAAP;AACH;AAED;;;AACA2J,gCAA4B,CAAC3J,SAAD,EAAkC;AAC1D,aAAO,KAAKhsB,OAAL,CAAaoV,IAAb,CAAmC,+BAAnC,EAAoE4W,SAApE,CAAP;AACH;;AACD4J,6BAAyB,CAAC5J,SAAD,EAAkC;AACvD,aAAO,KAAK2J,4BAAL,CAAkC3J,SAAlC,CAAP;AACH;;AAGDW,8BAA0B,CAAC/D,OAAD,EAAgB;AACtC,aAAO,KAAK5oB,OAAL,CAAaiF,GAAb,CAA8B,mCAAmC2jB,OAAjE,CAAP;AACH;;AACDiN,iCAA6B,CAACjN,OAAD,EAAgB;AACzC,UAAI,KAAKgK,QAAT,EAAmB;AACf;AACA,cAAM9F,SAAS,GAAG,KAAK8F,QAAL,CAAc3O,IAAd,CAAmB8I,SAAnB,CAA6BrvB,CAAC,IAAIA,CAAC,CAACu1B,WAAF,KAAkBrK,OAApD,CAAlB;;AACA,YAAIkE,SAAS,GAAG,CAAC,CAAjB,EAAoB;AAChB,eAAKH,0BAAL,CAAgC/D,OAAhC,EACK1nB,SADL,CACgBsnB,IAAD,IAAsB;AAC7B,kBAAMwE,UAAU,GAAG,KAAK4F,QAAL,CAAc3O,IAAd,CAAmB6I,SAAnB,CAAnB;AACAtE,gBAAI,CAAC5gB,EAAL,GAAUolB,UAAU,CAACplB,EAArB;AACA,iBAAKgrB,QAAL,CAAc3O,IAAd,CAAmB6I,SAAnB,IAAgCtE,IAAhC;AACA,iBAAKwK,yCAAL,CAA+C,KAAKJ,QAApD;AACH,WANL;AAOH;AACJ;AACJ,KAxSsB,CAySvB;AACA;AACA;;;AAKAkD,oCAAgC,CAACjX,OAAD,EAAgB;AAC5C,aAAO,KAAK7e,OAAL,CAAaiF,GAAb,CAA2B,4CAA4C4Z,OAAvE,CAAP;AACH;;AACDiN,mCAA+B,CAACjN,OAAD,EAAgB;AAC3C,aAAO,KAAK7e,OAAL,CAAaiF,GAAb,CAA2B,0CAA0C4Z,OAArE,CAAP;AACH;;AAGDkX,+BAA2B;AACvB,aAAO,KAAK/1B,OAAL,CAAaoV,IAAb,CAAuB,sCAAvB,EAA+D,EAA/D,CAAP;AACH;;AACD4gB,wBAAoB;AAChB,aAAO,KAAKh2B,OAAL,CAAaoV,IAAb,CAAuB,+BAAvB,EAAwD,EAAxD,CAAP;AACH;;AACD6gB,+BAA2B,CAAChD,WAAD,EAAoB;AAC3C,aAAO,KAAKjzB,OAAL,CAAaoV,IAAb,CAAuB,sDAAsD6d,WAA7E,EAA0F,EAA1F,CAAP;AACH;;AAhUsB;;;qBAAd1B,gBAAc5nB,uDAAAA,CAAAA,4EAAAA;AAAA;;;WAAd4nB;AAAc/yB,aAAd+yB,cAAc;AAAA9yB,gBAFX;;AAEhB,SAAa8yB,cAAb;AAAA;;;;;;;;;;;;;;;;;;ACrBA;;;AASO,IAAM2E,cAAb;AAAM,QAAOA,cAAP,CAAqB;AASvB53B,gBACY0B,OADZ,EAC+B;AAAnB;AARJ,oBAAmG;AACvGwhB,gBAAQ,EAAGjJ,CAAD,IAAO,KAAK4d,mBAAL,CAAyB5d,CAAzB,CADsF;AAEvGmJ,yBAAiB,EAAGnJ,CAAD,IAAO,KAAK6d,4BAAL,CAAkC7d,CAAlC,CAF6E;AAGvGqJ,eAAO,EAAGrJ,CAAD,IAAO,KAAK8d,kBAAL,CAAwB9d,CAAxB,CAHuF;AAIvGsJ,kBAAU,EAAGtJ,CAAD,IAAO,KAAK+d,qBAAL,CAA2B/d,CAA3B;AAJoF,OAAnG;AASH,KAXkB,CAcvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEAge,8BAA0B,CAACrU,OAAD,EAA4B;AAClD,aAAO,KAAKsU,MAAL,CAAYlV,4GAAQ,CAACY,OAAO,CAAChf,IAAT,CAApB,EAAoCgf,OAApC,CAAP;AACH;;AACDiU,uBAAmB,CAACjU,OAAD,EAA4B;AAC3C,aAAO,KAAKliB,OAAL,CAAaoV,IAAb,CAA2B,uBAA3B,EAAoD8M,OAApD,CAAP;AACH;;AACDmU,sBAAkB,CAACnU,OAAD,EAA4B;AAC1C,aAAO,KAAKliB,OAAL,CAAaoV,IAAb,CAA2B,uBAA3B,EAAoD8M,OAApD,CAAP;AACH;;AACDkU,gCAA4B,CAAClU,OAAD,EAA4B;AACpD,aAAO,KAAKliB,OAAL,CAAaoV,IAAb,CAA2B,iCAA3B,EAA8D8M,OAA9D,CAAP;AACH;;AACDoU,yBAAqB,CAACpU,OAAD,EAA4B;AAC7C,aAAO,KAAKliB,OAAL,CAAaoV,IAAb,CAA2B,yBAA3B,EAAsD8M,OAAtD,CAAP;AACH;;AAGDuU,qCAAiC,CAACC,WAAD,EAAsBC,OAAtB,EAAuCpb,OAAvC,EAAyDoO,YAAzD,EAA8E;AAC3G,YAAMzH,OAAO,GAAuB,EAApC;AACAA,aAAO,CAAChf,IAAR,GAAeoe,qHAAf;AACAY,aAAO,CAACyU,OAAR,GAAkBA,OAAlB;;AACA,UAAIpb,OAAJ,EAAa;AACT2G,eAAO,CAAC3G,OAAR,GAAkBA,OAAlB;AACA2G,eAAO,CAACyH,YAAR,GAAuBA,YAAvB;AACH,OAHD,MAGO;AACHzH,eAAO,CAAC0G,OAAR,GAAkB8N,WAAlB;AACH;;AACD,aAAO,KAAKF,MAAL,CAAYlV,4GAAQ,CAACY,OAAO,CAAChf,IAAT,CAApB,EAAoCgf,OAApC,CAAP;AACH;;AACD0U,oCAAgC,CAAC3D,WAAD,EAAsB0D,OAAtB,EAAuCpb,OAAvC,EAAyDoO,YAAzD,EAA8E;AAC1G,YAAMzH,OAAO,GAAuB,EAApC;AACAA,aAAO,CAAChf,IAAR,GAAeoe,oHAAf;AACAY,aAAO,CAACyU,OAAR,GAAkBA,OAAlB;;AACA,UAAIpb,OAAJ,EAAa;AACT2G,eAAO,CAAC3G,OAAR,GAAkBA,OAAlB;AACA2G,eAAO,CAACyH,YAAR,GAAuBA,YAAvB;AACH,OAHD,MAGO;AACHzH,eAAO,CAAC0G,OAAR,GAAkBqK,WAAlB;AACH;;AACD,aAAO,KAAKuD,MAAL,CAAYlV,4GAAQ,CAACY,OAAO,CAAChf,IAAT,CAApB,EAAoCgf,OAApC,CAAP;AACH;;AACD2U,8CAA0C,CAAC7G,qBAAD,EAAgC2G,OAAhC,EAAiDpb,OAAjD,EAAmEoO,YAAnE,EAAwF;AAC9H,YAAMzH,OAAO,GAAuB,EAApC;AACAA,aAAO,CAAChf,IAAR,GAAeoe,8HAAf;AACAY,aAAO,CAACyU,OAAR,GAAkBA,OAAlB;;AACA,UAAIpb,OAAJ,EAAa;AACT2G,eAAO,CAAC3G,OAAR,GAAkBA,OAAlB;AACA2G,eAAO,CAACyH,YAAR,GAAuBA,YAAvB;AACH,OAHD,MAGO;AACHzH,eAAO,CAAC0G,OAAR,GAAkBoH,qBAAlB;AACH;;AACD,aAAO,KAAKwG,MAAL,CAAYlV,4GAAQ,CAACY,OAAO,CAAChf,IAAT,CAApB,EAAoCgf,OAApC,CAAP;AACH;;AACD4U,uCAAmC,CAAClO,OAAD,EAAkB+N,OAAlB,EAAmCpb,OAAnC,EAAqDoO,YAArD,EAA0E;AACzG,YAAMzH,OAAO,GAAuB,EAApC;AACAA,aAAO,CAAChf,IAAR,GAAeoe,uHAAf;AACAY,aAAO,CAACyU,OAAR,GAAkBA,OAAlB;;AACA,UAAIpb,OAAJ,EAAa;AACT2G,eAAO,CAAC3G,OAAR,GAAkBA,OAAlB;AACA2G,eAAO,CAACyH,YAAR,GAAuBA,YAAvB;AACH,OAHD,MAGO;AACHzH,eAAO,CAAC0G,OAAR,GAAkBA,OAAlB;AACH;;AACD,aAAO,KAAK4N,MAAL,CAAYlV,4GAAQ,CAACY,OAAO,CAAChf,IAAT,CAApB,EAAoCgf,OAApC,CAAP;AACH;;AAxFsB;;;qBAAdgU,gBAAcvsB,sDAAAA,CAAAA,4EAAAA;AAAA;;;WAAdusB;AAAc13B,aAAd03B,cAAc;AAAAz3B,gBAFX;;AAEhB,SAAay3B,cAAb;AAAA;;;;;;;;;;;;;;;;;;;;;ACXA;AACA;;;;AAGO,IAAKa,YAWX;AAXD,aAAYA,YAAZ,EAAwB;AACpBA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACH,GAXD,EAAYA,YAAY,KAAZA,YAAY,MAAxB,CAWC;;AAAA,SAXWA,YAWX;AAAA,IAXD;AAgBO,IAAMC,eAAb;AAAM,QAAOA,eAAP,CAAsB;AAoBxB14B,gBACY0B,OADZ,EAEYF,MAFZ,EAE0B;AADd;AACA;AApBZ,iCAAoCi3B,YAAY,CAACE,eAAjD;AAEA,mCAA+C,IAAIlR,yCAAJ,EAA/C;AAEA,2BAAgE;AAC5DvE,gBAAQ,EAAE,iBADkD;AAE5DE,yBAAiB,EAAE,2BAFyC;AAG5DE,eAAO,EAAE,iBAHmD;AAI5DqV,uBAAe,EAAE,kBAJ2C;AAK5DC,sBAAc,EAAE,iBAL4C;AAM5DC,kBAAU,EAAE,YANgD;AAO5DC,uBAAe,EAAE,kBAP2C;AAQ5DC,+BAAuB,EAAE,2BARmC;AAS5DC,cAAM,EAAE,SAToD;AAU5DC,YAAI,EAAE;AAVsD,OAAhE;AAiBK;;AAELC,2BAAuB;AACnB,aAAO,KAAKx3B,OAAL,CAAaiF,GAAb,CAA+B,mBAA/B,EACFvD,IADE,CACG9D,mDAAG,CAAE2a,CAAD,IAAM;AACZ;AAEA,aAAKkf,mBAAL,GAA2Blf,CAA3B;AACH,OAJQ,CADN,CAAP;AAMH;;AAEDmf,sBAAkB,CAACC,YAAD,EAA2B;AACzC;AACA;AACA,WAAKC,qBAAL,CAA2Bt1B,IAA3B,CAAgCq1B,YAAhC;AACH;;AAtCuB;;;qBAAfX,iBAAertB,sDAAAA,CAAAA,4EAAAA,GAAAA,sDAAAA,CAAAA,mDAAAA;AAAA;;;WAAfqtB;AAAex4B,aAAfw4B,eAAe;AAAAv4B,gBAFZ;;AAEhB,SAAau4B,eAAb;AAAA;;;;;;;;;;;;;;;;;;;;;ACrBA;AAEA;AAEA;AACA;;;AAMO,IAAMc,qBAAb;AAAM,QAAOA,qBAAP,CAA4B;AAC9Bx5B,gBACYsC,GADZ,EAC2B;AAAf;AACP;AAGL;;;AACAm3B,4BAAwB,CAACC,cAAD,EAAuB;AAC3C,YAAMC,IAAI,GAAG5/B,IAAI,CAACI,KAAL,CAAWu/B,cAAX,CAAb;;AACA,UAAIC,IAAI,GAAG,CAAX,EAAc;AACV,eAAOrgC,0FAAA,CAA2CqgC,IAA3C,CAAP;AACH,OAFD,MAEO;AACH,eAAO,EAAP;AACH;AACJ;;AAEDC,gBAAY,CAACC,EAAD,EAAW;AACnB,UAAIA,EAAE,IAAI,IAAV,EAAgB;AACZ,eAAO,EAAP;AACH;;AACD,YAAMC,KAAK,GAAGD,EAAE,CAACj7B,WAAH,EAAd,CAJmB,CAMnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAGA,UAAIk7B,KAAK,CAACC,KAAN,CAAY,gBAAZ,CAAJ,EAAmC;AAC/B,eAAO,QAAP;AACH;;AACD,UAAID,KAAK,CAACC,KAAN,CAAY,0BAAZ,CAAJ,EAA6C;AACzC,eAAO,SAAP;AACH;;AACD,UAAID,KAAK,CAACC,KAAN,CAAa,QAAb,CAAJ,EAA6B;AACzB,eAAO,QAAP;AACH;;AAED,aAAO,QAAP;AACH;;AACDC,kBAAc,CAACp+B,GAAD,EAAS;;;AACnB,UAAI,CACAgX,gGADA,EAEAA,iGAFA,EAGAA,8FAHA,EAIAA,qGAJA,EAKAA,oGALA,EAMAA,6GANA,EAOAA,sGAPA,EAQAA,uGARA,EASAA,gHATA,EAUFqC,OAVE,CAUMrZ,GAAG,CAAC8+B,IAVV,IAUkB,CAAC,CAVnB,IAWG,UAAG,SAAH,OAAG,WAAH,GAAG,MAAH,MAAG,CAAElxB,IAAL,MAAS,IAAT,IAASmxB,aAAT,GAAS,MAAT,GAASA,GAAEC,SAAX,KAAwB,IAX/B,EAWqC;AACjC,eAAO,IAAIh/B,GAAG,CAAC4N,IAAJ,CAASoxB,SAAS,GAA7B;AACH;;AAED,aAAO,EAAP;AACH;;AAEDC,mBAAe,CAACC,IAAD,EAAmD;AAC9D,UAAIC,KAAK,GAAG,EAAZ;;AACA,UAAID,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACp8B,MAAL,GAAc,CAAlC,EAAqC;AACjCq8B,aAAK,GAAGD,IAAR;AACH;;AACD,aAAOC,KAAK,CAACC,KAAN,CAAY,CAAZ,EAAe,CAAf,EACF17B,GADE,CACG1D,GAAD,IAAa;AACd,eAAO,CACH,KAAK69B,wBAAL,CAA8B79B,GAAG,CAACI,IAAlC,CADG,EAEHu9B,kEAAQ,CAAC39B,GAAG,CAAC8+B,IAAL,CAFL,EAGH,KAAKd,YAAL,CAAkBh+B,GAAG,CAACi+B,EAAtB,CAHG,EAIH,KAAKG,cAAL,CAAoBp+B,GAApB,CAJG,CAAP;AAMH,OARE,CAAP;AASH;;AAEDq/B,iBAAa,CAACvN,SAAD,EAAe;AACxB,aAAO,KAAKprB,GAAL,CAAS6W,OAAT,CAA4C,oBAA5C,EAAkEuU,SAAlE,EACFtqB,IADE,CAECpC,mDAAG,CAACvH,MAAM,IAAG;AACT,aAAK,MAAMyhC,MAAX,IAAqBzhC,MAAM,CAACksB,IAA5B,EAAkC;AAC9BuV,gBAAM,CAACC,SAAP,GAAmB,KAAKN,eAAL,CAAqBK,MAAM,CAACE,QAA5B,CAAnB;AACH;AACJ,OAJE,CAFJ,CAAP;AAQH;;AA9F6B;;;qBAArB5B,uBAAqBnuB,sDAAAA,CAAAA,sEAAAA;AAAA;;;WAArBmuB;AAAqBt5B,aAArBs5B,qBAAqB;AAAAr5B,gBAFlB;;AAEhB,SAAaq5B,qBAAb;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACRA;;;;;;;;;;;;;AAQO,IAAM6B,2BAAb;AAAM,QAAOA,2BAAP,CAAkC;AAQpCr7B,gBACW+B,gBADX,EAEYP,MAFZ,EAGY85B,yBAHZ,EAIYC,kBAJZ,EAIkD;AAHvC;AACC;AACA;AACA;AAVZ,gCAA8B,KAA9B;AACA,gCAA8B,KAA9B;AACA,kBAAe,EAAf;AACA,4BAAyB,EAAzB;AACA,4BAAyB,EAAzB;AAOK;;AAEL74B,YAAQ;AACJ;AACA,UAAI,KAAK44B,yBAAL,CAA+BlyB,GAA/B,IAAsC,IAA1C,EAAgD;AAC5C,aAAK5H,MAAL,CAAY8Z,QAAZ,CAAqB,CAAC,GAAD,CAArB;AACH,OAFD,MAEO;AACH,aAAKigB,kBAAL,CAAwBC,0BAAxB,CAAmD56B,+FAAnD;AACH;AACJ;;AAED86B,kBAAc;AACV,UAAI,KAAKC,cAAL,CAAoBj9B,MAApB,GAA6B,CAAjC,EAAoC;AAChC,eAAO,KAAP;AACH;;AAED,aAAO,IAAP;AACH;;AACDk9B,kBAAc;AACV,UAAI,KAAKD,cAAL,KAAwB,KAAKE,cAAjC,EAAiD;AAC7C,eAAO,KAAP;AACH;;AAED,aAAO,IAAP;AACH;;AAEDC,wBAAoB;AAChB,aAAO,CAAC,KAAKJ,cAAL,EAAD,IAA0B,CAAC,KAAKE,cAAL,EAAlC;AACH;;AAEDG,UAAM;AACF,WAAKR,kBAAL,CAAwBS,yBAAxB,CAAkDp7B,qFAAlD;AACA,WAAK06B,yBAAL,CAA+BY,6BAA/B,CACI,KAAKZ,yBAAL,CAA+BlyB,GAA/B,CAAmCA,GADvC,EAEM,KAAKkV,IAFX,EAGM,KAAKud,cAHX,EAKKj5B,SALL,CAKe;AACPoB,YAAI,EAAGvK,MAAD,IAAoB;AACtB,cAAIA,MAAJ,EAAY;AACR0iC,iBAAK,CAAC,SAAD,CAAL;AACA,iBAAKb,yBAAL,CAA+BlyB,GAA/B,GAAqC,IAArC;AACA,iBAAK5H,MAAL,CAAY8Z,QAAZ,CAAqB,CAAC,GAAD,CAArB;AACH,WAJD,MAIO;AACH6gB,iBAAK,CAAC,2BAAD,CAAL;AACA,iBAAKZ,kBAAL,CAAwBC,0BAAxB,CAAmD56B,qFAAnD;AACH;AACJ,SAVM;AAWP0G,aAAK,EAAE,MAAK;AACR60B,eAAK,CAAC,2BAAD,CAAL;AACA,eAAKZ,kBAAL,CAAwBC,0BAAxB,CAAmD56B,qFAAnD,EAFQ,CAGR;AACA;AACA;AACA;AACH;AAlBM,OALf;AAyBH;;AAtEmC;;;qBAA3By6B,6BAA2BhwB,+DAAAA,CAAAA,yFAAAA,GAAAA,+DAAAA,CAAAA,mDAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,oGAAAA;AAAA;;;UAA3BgwB;AAA2B/vB;AAAA8wB;AAAAC;AAAAC;AAAAC;AAAA;ACZxClxB,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAmBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AACvBA,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkEA,QAAAA,wDAAAA;AAAA;AAAA;AAAlEA,QAAAA,0DAAAA;AACAA,QAAAA,uDAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,wDAAAA;AAAA;AAAA;AADJA,QAAAA,0DAAAA;AAEAA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAuBA,QAAAA,wDAAAA;AAAA;AAAA;AAAvBA,QAAAA,0DAAAA;AACAA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AACxBA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,wDAAAA;AAAA;AAAA;AADJA,QAAAA,0DAAAA;AAEAA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAuBA,QAAAA,wDAAAA;AAAA;AAAA;AAAvBA,QAAAA,0DAAAA;AACAA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AACxBA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AAA8EA,QAAAA,wDAAAA;AAAA,iBAASG,YAAT;AAAiB,SAAjB;AAAmBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AAEvGA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;;;;AA1B8EA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAI3DA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA,uDAA6C,SAA7C,EAA6CG,kBAA7C;AAIoBH,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAMpBA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA,uDAA6C,SAA7C,EAA6CG,kBAA7C;AAIoBH,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAKHA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA,YAAAA,6DAAAA;;;;;;ADhBpC,SAAagwB,2BAAb;AAAA;;;;;;;;;;;;;;;;;;;;AEXA;AACA;AACA;AACA;;AAWO,IAAMhvB,wBAAb;AAAM,QAAOA,wBAAP,CAA+B;;;qBAAxBA;AAAwB;;;UAAxBA;;;cARA,CACLmwB,yDADK,EAELC,6GAFK,EAGLttB,uDAHK;;AAQb,SAAa9C,wBAAb;AAAA;;;sHAAaA,0BAAwB;AAAA4F,mBAHlBopB,wFAGkB;AAHSxpB,cAJtC2qB,yDAIsC,EAHtCC,6GAGsC,EAFtCttB,uDAEsC,CAGT;AALlByO,cAGLyd,wFAHK;AAKkB;AAFI;;;;;;;;;;;;;;;;;;;ACJlC,IAAMqB,yBAAb;AAAM,QAAOA,yBAAP,CAAgC;AAIlC18B,gBACY0B,OADZ,EAC+B;AAAnB;AACP;;AAEGi7B,gCAA4B,CAAC9lB,KAAD,EAAc;AAC9C,YAAMsB,QAAQ,GAAG;AACbtB,aAAK,EAAEA;AADM,OAAjB;AAIA,aAAO,KAAKnV,OAAL,CAAaoV,IAAb,CAAqC,qCAArC,EAA4EqB,QAA5E,CAAP;AACH;;AACDykB,oCAAgC,CAAC/lB,KAAD,EAAc;AAC1C,aAAO,KAAK8lB,4BAAL,CAAkC9lB,KAAlC,CAAP;AACH;;AAGOgmB,6BAAyB,CAACzzB,GAAD,EAAckV,IAAd,EAA4B1H,QAA5B,EAA4C;AACzE,YAAMuB,QAAQ,GAA0B;AACpC/O,WAAG,EAAEA,GAD+B;AAEpCkV,YAAI,EAAEA,IAF8B;AAGpC1H,gBAAQ,EAAEA;AAH0B,OAAxC;AAMA,aAAO,KAAKlV,OAAL,CAAaoV,IAAb,CAA2B,sBAA3B,EAAmDqB,QAAnD,CAAP;AACH;;AACD+jB,iCAA6B,CAAC9yB,GAAD,EAAckV,IAAd,EAA4B1H,QAA5B,EAA4C;AACrE,aAAO,KAAKimB,yBAAL,CAA+BzzB,GAA/B,EAAoCkV,IAApC,EAA0C1H,QAA1C,CAAP;AACH;;AA/BiC;;;qBAAzB8lB,2BAAyBrxB,sDAAAA,CAAAA,4EAAAA;AAAA;;;WAAzBqxB;AAAyBx8B,aAAzBw8B,yBAAyB;AAAAv8B,gBAFtB;;AAEhB,SAAau8B,yBAAb;AAAA;;;;;;;;;;;;;;;ACTA;AACA;AACA;AAEO,MAAMt8B,WAAW,GAAG;AACvBG,YAAU,EAAE,KADW;AAEvBE,oBAAkB,EAAE;AAFG,CAApB;AAKP;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;ACfA;AAEA;AACA;AACA;AAEA;AACA,CAEA;;AAEA,IAAIL,6EAAJ,EAA4B;AACxB08B,EAAAA,6DAAc;;AACd6B,QAAM,CAAChjC,OAAP,CAAeC,GAAf,GAAqB,aAAe,CAApC;AACH;;AAED,MAAMgjC,KAAK,GAAG,CACV5B,2EADU,EACGC,0EADH,EACeC,yEADf,EAC0BC,4EAD1B,EACwCC,6EADxC,EACuDC,4EADvD,EACqEC,6EADrE,EACoFC,wEADpF,EAEVC,0EAFU,EAEEC,oEAFF,EAEQC,mFAFR,EAE6BC,+EAF7B,EAE8CC,qEAF9C,EAEqDC,sEAFrD,EAE6DE,2EAF7D,EAE2EC,qEAF3E,EAEmFF,sEAFnF,EAGVG,yEAHU,EAGEC,sEAHF,EAGWC,sEAHX,EAGoBC,4EAHpB,EAGmCC,qEAHnC,EAG2CC,0EAH3C,EAGwDC,sEAHxD,EAGiEC,0EAHjE,EAG8EC,uEAH9E,EAGwFC,qEAHxF,CAAd;AAMA3B,0EAAA,CAAY,GAAG6B,KAAf;;AAEAE,sEAAAA,GAAyBC,eAAzB,CAAyCptB,sDAAzC,EACKwI,KADL,CACWC,GAAG,IAAIze,OAAO,CAAC2L,KAAR,CAAc8S,GAAd,CADlB;;AAGAze,OAAO,CAACC,GAAR,CAAY,OAAZ;AACAkK,QAAQ,CAACgV,cAAT,CAAwB,UAAxB,EAAoCxD,MAApC;AACAxR,QAAQ,CAACgV,cAAT,CAAwB,cAAxB,EAAwCxD,MAAxC;;;;;;;;;;;;;;;AC9BO,IAAK1W,UAuCX;AAvCD,aAAYA,UAAZ,EAAsB;AAClBA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACH,GAvCD,EAAYA,UAAU,KAAVA,UAAU,MAAtB,CAuCC;;AAAA,SAvCWA,UAuCX;AAAA,IAvCD;;;;;;;;;;;;;;;;;ACCA;;AAGO,IAAMo+B,SAAb;AAAM,QAAOA,SAAP,CAAgB;AAKlBh/B;AAJO,iCAAoC,IAAIynB,yCAAJ,EAApC;AAEP,+BAA6B,KAA7B;AAEiB;;AAEjBwX,sBAAkB;AACd,WAAKC,mBAAL,CAAyBl7B,IAAzB;AACH;;AATiB;;;qBAATg7B;AAAS;;;UAATA;;AAAb,SAAaA,SAAb;AAAA;;;;;;;;;;;;;;;;;;;;;ACGO,IAAM19B,gCAAb;AAAM,QAAOA,gCAAP,CAAuC;AAIzCtB,mBAAiB;;AACjB0C,YAAQ,IACP;;AACDy8B,cAAU;AACN,WAAK14B,OAAL;AACH;;AATwC;;;qBAAhCnF;AAAgC;;;UAAhCA;AAAgCgK;AAAA8wB;AAAAC;AAAAC;AAAAC;AAAA;ACP7ClxB,QAAAA,4DAAAA;AAAuBA,QAAAA,wDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AAAuBH,QAAAA,0DAAAA;AAC9CA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACAA,QAAAA,uDAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAMA,QAAAA,0DAAAA;AACxBA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAWA,QAAAA,0DAAAA;AAC7BA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAGA,QAAAA,4DAAAA;AAAoBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AAAIA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AACrDA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAWA,QAAAA,0DAAAA;AAC7BA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA4BA,QAAAA,wDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AAAuBH,QAAAA,oDAAAA;AAAGA,QAAAA,0DAAAA;AAC1DA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;;;;;;ADRA,SAAa/J,gCAAb;AAAA;;;;;;;;;;;;;;;;;;;;AENA;AACA;AACA;AACA;;AAiBO,IAAMmQ,6BAAb;AAAM,QAAOA,6BAAP,CAAoC;;;qBAA7BA;AAA6B;;;UAA7BA;;;cATA,CACL+qB,yDADK,EAEL6C,4HAFK,EAGLD,yHAHK;;AASb,SAAa3tB,6BAAb;AAAA;;;sHAAaA,+BAA6B;AAAAQ,mBAXlC3Q,mGAWkC;AAXFuQ,cAGhC2qB,yDAHgC,EAIhC6C,4HAJgC,EAKhCD,yHALgC,CAWE;AANdxhB,cAGpBtc,mGAHoB;AAMc;AAHF;;;;;;;;;;;;;;;;;;;;;;AClBxC;AACA;;;;;;;;;;;;;AAQO,IAAMi+B,4BAAb;AAAM,QAAOA,4BAAP,SAA4CP,6DAA5C,CAAqD;AAOvDh/B,gBACYw/B,UADZ,EAEYC,mBAFZ,EAEoD;AAEhD;AAHQ;AACA;AAPF,qBAAgC,IAAIH,uDAAJ,EAAhC;AAEV,wBAAqB,EAArB;AACA,kBAAe,EAAf;AAOC;;AAED58B,YAAQ,IAAM;;AAEdg9B,aAAS,CAACC,UAAD,EAAgB;AACrB;AACA,WAAKA,UAAL,GAAkBA,UAAlB;AACA,WAAKlhC,IAAL,GAAYkhC,UAAZ;AAEA17B,gBAAU,CAAC,MAAK;AACZ,aAAK27B,eAAL,CAAqBC,aAArB,CAAmCvb,KAAnC;AACA,aAAKsb,eAAL,CAAqBC,aAArB,CAAmCC,aAAnC,CAAiD,IAAIC,WAAJ,CAAgB,OAAhB,CAAjD;AACH,OAHS,EAGP,CAHO,CAAV;AAIH;;AACDC,gBAAY;AACR,WAAKC,OAAL,CAAaC,IAAb,CAAkB,KAAKzhC,IAAvB;AACH;;AACDuM,cAAU;AACN,WAAKy0B,mBAAL,CAAyBU,cAAzB,CAAwC,KAAKC,YAA7C;AACH;;AACDC,gBAAY,CAACx4B,EAAD,EAAkB;AAC1B,UAAIA,EAAE,CAACy4B,OAAH,KAAe,EAAnB,EAAuB;AACnB,aAAKt1B,UAAL;AACH;AACJ;;AACDu1B,gBAAY,CAAC14B,EAAD,EAAkB;AAC1B,UAAIA,EAAE,CAACy4B,OAAH,KAAe,EAAnB,EAAuB;AACnB;AACH;;AACD,WAAKN,YAAL;AACH;;AAC6CQ,aAAS,CAAC34B,EAAD,EAAkB;AACrE,UAAIA,EAAE,CAACy4B,OAAH,KAAe,EAAf,IAAqB,CAAC,KAAKb,mBAAL,CAAyBe,SAAzB,EAA1B,EAAgE;AAC5D,aAAKx1B,UAAL;AACH;AACJ;;AAEDy1B,6BAAyB;AACrB,aAAO,KAAKhiC,IAAL,CAAUC,MAAV,KAAqB,CAA5B;AACH;;AAnDsD;;;qBAA9C6gC,8BAA4Bl0B,+DAAAA,CAAAA,qDAAAA,GAAAA,+DAAAA,CAAAA,qFAAAA;AAAA;;;UAA5Bk0B;AAA4Bj0B;AAAAo1B;AAAA;;;;;;;;;;;;;iBAA5Bl1B;AAAiB;;;;;;;;;;;;ACT9BH,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkCA,QAAAA,wDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AAAuBH,QAAAA,0DAAAA;AAC7DA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AAI1BA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAwBA,QAAAA,oDAAAA;AAAQA,QAAAA,0DAAAA;AAChCA,QAAAA,4DAAAA;AAA6BA,QAAAA,oDAAAA;AAAkBA,QAAAA,0DAAAA;AACnDA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA0BA,QAAAA,wDAAAA;AAAA;AAAA,WAAkB,eAAlB,EAAkB;AAAA,iBAA+CG,wBAA/C;AAAmE,SAArF;AAA1BH,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAqFA,QAAAA,wDAAAA;AAAA,iBAASG,kBAAT;AAAuB,SAAvB;AAAyBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AAChHA,QAAAA,4DAAAA;AAA2BA,QAAAA,wDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AAAuBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AACxDA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;;;;AAtBmCA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAWUA,QAAAA,uDAAAA;AAAAA,QAAAA,gEAAAA;AAGgBA,QAAAA,uDAAAA;AAAAA,QAAAA,mEAAAA;AAAnBA,QAAAA,wDAAAA;AAGEA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA,YAAAA,6DAAAA;;;;;;ADZ5C,SAAak0B,4BAAb;AAAA;;;;;;;;;;;;;;;;;;;;;AETA;AAEA;AACA;AACA;AACA;;AAaO,IAAMnxB,yBAAb;AAAM,QAAOA,yBAAP,CAAgC;;;qBAAzBA;AAAyB;;;UAAzBA;;;cATA,CACLouB,yDADK,EAELC,2FAFK,EAGLttB,uDAHK,EAILwxB,+DAJK,EAKLtB,4HALK;;AASb,SAAajxB,yBAAb;AAAA;;;sHAAaA,2BAAyB;AAAA6D,mBAVnBstB,0FAUmB;AAVS1tB,cAEvC2qB,yDAFuC,EAGvCC,2FAHuC,EAIvCttB,uDAJuC,EAKvCwxB,+DALuC,EAMvCtB,4HANuC,CAUT;AAJTzhB,cAEf2hB,0FAFe;AAIS;AAFI;;;;;;;;;;;;;;;;;;;ACRnC,IAAMqB,kCAAb;AAAM,QAAOA,kCAAP,CAAyC;AAE3C5gC,gBACW6gC,SADX,EACsE;AAA3D;AACN;;AAELn+B,YAAQ,IACP;;AACDsI,cAAU;AACN,WAAK61B,SAAL,CAAen6B,KAAf;AACH;;AAV0C;;;qBAAlCk6B,oCAAkCv1B,+DAAAA,CAAAA,kEAAAA;AAAA;;;UAAlCu1B;AAAkCt1B;AAAA8wB;AAAAC;AAAAC;AAAAC;AAAA;ACP/ClxB,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAGA,QAAAA,0DAAAA;AACrBA,QAAAA,4DAAAA;AAA0BA,QAAAA,wDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AACtBH,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAQA,QAAAA,0DAAAA;AAC9BA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAoBA,QAAAA,0DAAAA;AACtCA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA4BA,QAAAA,wDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AAAuBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AACzDA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;;;;;ADVA,SAAau1B,kCAAb;AAAA;;;;;;;;;;;;;;;;;;;AERA;AAEA;AACA;;AAYO,IAAMxwB,+BAAb;AAAM,QAAOA,+BAAP,CAAsC;;;qBAA/BA;AAA+B;;;UAA/BA;;;cANA,CACLosB,yDADK,EAEL6C,4HAFK;;AAMb,SAAajvB,+BAAb;AAAA;;;sHAAaA,iCAA+B;AAAA6B,mBAPzB2uB,uGAOyB;AAPS/uB,cAE7C2qB,yDAF6C,EAG7C6C,4HAH6C,CAOT;AAJfzhB,cAEfgjB,uGAFe;AAIe;AAFI;;;;;;;;;;;;;;;;;;;;;;ACbhDv1B,IAAAA,4DAAAA;AAAqFA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AACvFA,IAAAA,4DAAAA;AAA+EA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AACjFA,IAAAA,4DAAAA;AAAiFA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AACnFA,IAAAA,4DAAAA;AAA0FA,IAAAA,oDAAAA;AAAGA,IAAAA,0DAAAA;;;;;;AAC7FA,IAAAA,4DAAAA;AAAqFA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AACvFA,IAAAA,4DAAAA;AAAyFA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AAC3FA,IAAAA,4DAAAA;AAAyFA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AAC7FA,IAAAA,4DAAAA;AAAuFA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AAC3FA,IAAAA,4DAAAA;AAAwGA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AAC5GA,IAAAA,4DAAAA;AAA2FA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AAC7FA,IAAAA,4DAAAA;AAA2FA,IAAAA,oDAAAA;AAAGA,IAAAA,0DAAAA;;;;;;AAC9FA,IAAAA,4DAAAA;AAA4GA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AAC9GA,IAAAA,4DAAAA;AAAmFA,IAAAA,oDAAAA;AAAGA,IAAAA,0DAAAA;;;;;;AACtFA,IAAAA,4DAAAA;AAAqFA,IAAAA,oDAAAA;AAAGA,IAAAA,0DAAAA;;;;;;AACxFA,IAAAA,4DAAAA;AAAiFA,IAAAA,oDAAAA;AAAGA,IAAAA,0DAAAA;;;;;;AACpFA,IAAAA,4DAAAA;AAAqFA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AACzFA,IAAAA,4DAAAA;AAAwFA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AAC5FA,IAAAA,4DAAAA;AAAwFA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AAC5FA,IAAAA,4DAAAA;AAAwFA,IAAAA,oDAAAA;AAAGA,IAAAA,0DAAAA;;;;;;AAC3FA,IAAAA,4DAAAA;AAAwFA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AAC5FA,IAAAA,4DAAAA;AAA8EA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AAChFA,IAAAA,4DAAAA;AAA8EA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AAChFA,IAAAA,4DAAAA;AAAwEA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AAC1EA,IAAAA,4DAAAA;AAAoFA,IAAAA,oDAAAA;AAAGA,IAAAA,0DAAAA;;;;;;AACvFA,IAAAA,4DAAAA;AAAiGA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AACrGA,IAAAA,4DAAAA;AAA6FA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AACjGA,IAAAA,4DAAAA;AAA6FA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AACjGA,IAAAA,4DAAAA;AAA0EA,IAAAA,oDAAAA;AAAEA,IAAAA,0DAAAA;;;;;;AAC5EA,IAAAA,4DAAAA;AAA+EA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AACnFA,IAAAA,4DAAAA;AAA+EA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AACnFA,IAAAA,4DAAAA;AAA+EA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;ACtB5E,IAAMy1B,qBAAb;AAAM,QAAOA,qBAAP,CAA4B;AAI9B9gC,mBAAiB;;AAEjB0C,YAAQ,IAEP;;AAR6B;;;qBAArBo+B;AAAqB;;;UAArBA;AAAqBx1B;AAAAy1B;AAAAC;AAAA;AAAA5E;AAAAC;AAAAC;AAAAC;AAAA;ADRlClxB,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,wDAAAA;;;;AA9BoCA,QAAAA,wDAAAA;AACHA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACCA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACKA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACHA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACEA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACAA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACDA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACSA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACPA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACAA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACSA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACbA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACCA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACFA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACEA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACEA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACAA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACAA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACAA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACDA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACAA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACHA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACKA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACOA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACFA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACAA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACVA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACDA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACAA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AACAA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;;;;;;ACtBjC,SAAay1B,qBAAb;AAAA;;;;;;;;;;;;;;;;;;ACPA;AACA;;AAWO,IAAM5vB,kBAAb;AAAM,QAAOA,kBAAP,CAAyB;;;qBAAlBA;AAAkB;;;UAAlBA;;;cALF,CACPsrB,yDADO;;AAKX,SAAatrB,kBAAb;AAAA;;;sHAAaA,oBAAkB;AAAAe,mBANd6uB,2EAMc;AANOjvB,cAElC2qB,yDAFkC,CAMP;AAJf5e,cAEJkjB,2EAFI;AAIe;AAFE;;;;;;;;;;;;;;;;;;;;;;;;ACXjC;AACA;;;;;;;;;;;;;;;ACyBwBz1B,IAAAA,4DAAAA;AACIA,IAAAA,4DAAAA;AAAgBA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;AAC7BA,IAAAA,4DAAAA;AAAkBA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;AAC/BA,IAAAA,4DAAAA;AAA2BA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA,aAAS41B,kCAAT;AAAiC,KAAjC;AACvB51B,IAAAA,uDAAAA;AAEJA,IAAAA,0DAAAA;AAIJA,IAAAA,0DAAAA;;;;;AAToBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACEA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAyB1BA,IAAAA,gEAAAA;;;;;;;;;;;;;;AASRA,IAAAA,4DAAAA;AAEAA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA,aAAS61B,2CAAT;AAAyC,KAAzC;AACI71B,IAAAA,uDAAAA;;AACAA,IAAAA,4DAAAA;AAAwBA,IAAAA,oDAAAA;AAA6BA,IAAAA,0DAAAA;AACzDA,IAAAA,0DAAAA;;;;;;AAJAA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAEsBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,cAAAA,yDAAAA,yDAAAA,4DAAAA;AACMA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;;;;;;;AANpCA,IAAAA,4DAAAA;AACIA,IAAAA,4DAAAA;AACIA,IAAAA,wDAAAA;AAMJA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AAAsEA,IAAAA,oDAAAA;AAAGA,IAAAA,4DAAAA;AAAMA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;AAAOA,IAAAA,oDAAAA;AAACA,IAAAA,0DAAAA;AAClHA,IAAAA,0DAAAA;;;;;AAR+CA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAOlBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsDA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;;;;;;;;;ADrDhF,IAAM81B,qBAAb;AAAM,QAAOA,qBAAP,SAAqCnC,6DAArC,CAA8C;AAEhDh/B,gBACYw/B,UADZ,EAEYC,mBAFZ,EAGY2B,cAHZ,EAG0C;AAEtC;AAJQ;AACA;AACA;AAKF,qBAAmC,IAAI9B,uDAAJ,EAAnC;AAGV,wBAAwB,EAAxB;AACA,kBAAkB,EAAlB,CAT0C,CAU1C;;AAEA,6BAA0B,EAA1B;AACA,0BAA0B,EAA1B;AACA,oBAAkB,KAAlB;AACA,qBAAmB,KAAnB;AAZC,KAR+C,CAqBhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA58B,YAAQ;AACJ,WAAK2+B,OAAL,GAAe,KAAf;AACH;;AACD3B,aAAS,CAAC96B,IAAD,EAAiB08B,WAAjB,EAAuC;AAC5C,WAAK18B,IAAL,GAAYA,IAAZ;AAEA,WAAK28B,UAAL,GAAkBD,WAAlB;AACA,WAAK3b,IAAL,GAAY,KAAK6b,SAAL,CAAeF,WAAf,CAAZ,CAJ4C,CAK5C;;AACA,WAAKG,SAAL;AACA,WAAKC,iBAAL,CAAuBC,YAAvB,CAAoC9B,aAApC,CAAkDvb,KAAlD;AACArgB,gBAAU,CAAC,MAAK;AACZ,aAAKo9B,OAAL,GAAe,IAAf;AACH,OAFS,EAEP,GAFO,CAAV,CAR4C,CAW5C;AACH;;AACDr2B,cAAU;AACN;AACA,WAAKy0B,mBAAL,CAAyBU,cAAzB,CAAwC,KAAKC,YAA7C;AACH;;AAE6CI,aAAS,CAAC34B,EAAD,EAAkB;AACrE;AACA,UAAIA,EAAE,CAACy4B,OAAH,KAAe,EAAnB,EAAuB;AACnB,aAAKb,mBAAL,CAAyBe,SAAzB;AACH;AACJ;;AACDoB,2BAAuB,CAAC5lC,IAAD,EAAa;AAChC,YAAM6lC,IAAI,GAAG,IAAI9nC,IAAJ,CAASiC,IAAT,CAAb;AACA,aAAO6lC,IAAI,CAACznC,WAAL,KACD,GADC,GACK,CAACynC,IAAI,CAACxnC,QAAL,KAAkB,CAAnB,EAAsBX,QAAtB,GAAiCC,QAAjC,CAA0C,CAA1C,EAA6C,GAA7C,CADL,GAED,GAFC,GAEMkoC,IAAI,CAACvnC,OAAL,EAAD,CAAiBZ,QAAjB,GAA4BC,QAA5B,CAAqC,CAArC,EAAwC,GAAxC,CAFL,GAGD,GAHC,GAGMkoC,IAAI,CAACrmC,QAAL,EAAD,CAAkB9B,QAAlB,GAA6BC,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAHL,GAID,GAJC,GAIMkoC,IAAI,CAACpmC,UAAL,EAAD,CAAoB/B,QAApB,GAA+BC,QAA/B,CAAwC,CAAxC,EAA2C,GAA3C,CAJZ;AAKH;;AAGDmoC,6BAAyB,CAACj6B,EAAD,EAAUsqB,SAAV,EAA2B;AAChD,YAAMta,IAAI,GAAGhQ,EAAE,CAACgQ,IAAH,IAAYhQ,EAAE,CAACk6B,YAAH,IAAmBl6B,EAAE,CAACk6B,YAAH,EAA5C;AAEA,aAAOlqB,IAAI,CAAC1Y,MAAL,CAAYkiB,CAAC,IAAIA,CAAC,YAAY2gB,WAA9B,EAA2CC,IAA3C,CAAiD5gB,CAAD,IAAe;AAClE,eAAOA,CAAC,CAAC6gB,SAAF,CAAYC,QAAZ,CAAqBhQ,SAArB,CAAP;AACH,OAFM,CAAP;AAGH;;AACDiQ,0BAAsB,CAACv6B,EAAD,EAAUuc,OAAV,EAA0B;AAC5C,YAAMvM,IAAI,GAAGhQ,EAAE,CAACgQ,IAAH,IAAYhQ,EAAE,CAACk6B,YAAH,IAAmBl6B,EAAE,CAACk6B,YAAH,EAA5C;AAEA,aAAOlqB,IAAI,CAAC1Y,MAAL,CAAYkiB,CAAC,IAAIA,CAAC,YAAY2gB,WAA9B,EAA2CC,IAA3C,CAAiD5gB,CAAD,IAAe;AAClE,eAAOA,CAAC,KAAK+C,OAAb;AACH,OAFM,CAAP;AAGH;;AACDie,2BAAuB,CAACx6B,EAAD,EAAUsqB,SAAV,EAA2B;AAC9C,YAAMta,IAAI,GAAGhQ,EAAE,CAACgQ,IAAH,IAAYhQ,EAAE,CAACk6B,YAAH,IAAmBl6B,EAAE,CAACk6B,YAAH,EAA5C;AAEA,aAAOlqB,IAAI,CAAC1Y,MAAL,CAAYkiB,CAAC,IAAIA,CAAC,YAAY2gB,WAA9B,EAA2CM,IAA3C,CAAiDjhB,CAAD,IAAe;AAClE,eAAOA,CAAC,CAAC6gB,SAAF,CAAYC,QAAZ,CAAqBhQ,SAArB,CAAP;AACH,OAFM,CAAP;AAGH;;AAC2CoQ,cAAU,CAACv5B,GAAD,EAAgB;AAClE,UAAI,KAAKq4B,OAAL,IAAgB,CAAC,KAAKS,yBAAL,CAA+B94B,GAA/B,EAAoC,uBAApC,CAArB,EAAmF;AAC/E,aAAKgC,UAAL;AACH;AACJ;AAGD;;;AACAw2B,aAAS,CAAC7b,IAAD,EAAgB;AACrB,aAAO9e,IAAI,CAAC1M,KAAL,CAAW0M,IAAI,CAAC27B,SAAL,CAAe7c,IAAf,CAAX,CAAP;AACH;AAGD;;;AACA8c,mBAAe;AACX,YAAMC,UAAU,GAAY;AACxBp5B,UAAE,EAAE,KAAKqc,IAAL,CAAUjnB,MADU;AAExBD,YAAI,EAAE,KAAKijC,iBAAL,CAAuBiB,SAAvB,CAAiClkC,IAFf;AAGxBmkC,uBAAe,EAAE;AAHO,OAA5B;AAMA,WAAKjd,IAAL,CAAUlrB,IAAV,CAAeioC,UAAf;AAEA,WAAKhB,iBAAL,CAAuBmB,OAAvB,CAA+B,EAA/B;AAEA,WAAKpB,SAAL;AACH;;AACDqB,gBAAY,CAACzpB,IAAD,EAAa;AACrB,aAAO,KAAKsM,IAAL,CAAUsc,IAAV,CAAe7iC,CAAC,IAAIA,CAAC,CAACX,IAAF,KAAW4a,IAA/B,CAAP;AACH;;AACD0pB,oBAAgB;AACZ,aAAO,CAAC,KAAKrB,iBAAL,CAAuBiB,SAAvB,CAAiClkC,IAAlC,IACA,KAAKqkC,YAAL,CAAkB,KAAKpB,iBAAL,CAAuBiB,SAAvB,CAAiClkC,IAAnD,CADP;AAEH;AAGD;;;AACAukC,gBAAY,CAACrd,IAAD,EAAgB;AACxB,YAAMsd,YAAY,GAAG,KAAKtd,IAAL,CAAUrmB,GAAV,CAAcF,CAAC,IAAIA,CAAC,CAACkK,EAArB,CAArB;AACA,YAAM45B,SAAS,GAAG,KAAKvd,IAAL,CAAUrmB,GAAV,CAAc,CAACF,CAAD,EAAIP,CAAJ,KAAUA,CAAxB,CAAlB;AAEA,aAAOokC,YAAY,CAACzjC,IAAb,CAAkB,GAAlB,MAA2B0jC,SAAS,CAAC1jC,IAAV,CAAe,GAAf,CAAlC;AACH;;AACD2jC,iBAAa;AACT,YAAMF,YAAY,GAAG,KAAK1B,UAAL,CAAgBjiC,GAAhB,CAAoBF,CAAC,IAAIA,CAAC,CAACkK,EAA3B,CAArB;AACA,YAAM45B,SAAS,GAAG,KAAK3B,UAAL,CAAgBjiC,GAAhB,CAAoB,CAACF,CAAD,EAAIP,CAAJ,KAAUA,CAA9B,CAAlB;AAEA,aAAOokC,YAAY,CAACzjC,IAAb,CAAkB,GAAlB,MAA2B0jC,SAAS,CAAC1jC,IAAV,CAAe,GAAf,CAAlC;AACH;;AACD4jC,aAAS;AACL,YAAM7B,UAAU,GAAG,KAAKA,UAAL,CAAgBjiC,GAAhB,CAAoBF,CAAC,IAAIA,CAAC,CAACkK,EAAF,GAAO,GAAP,GAAalK,CAAC,CAACX,IAAxC,CAAnB;AACA,YAAM4kC,OAAO,GAAG,KAAK1d,IAAL,CAAUrmB,GAAV,CAAcF,CAAC,IAAIA,CAAC,CAACkK,EAAF,GAAO,GAAP,GAAalK,CAAC,CAACX,IAAlC,CAAhB;AAEA,aAAO8iC,UAAU,CAAC/hC,IAAX,CAAgB,GAAhB,MAAyB6jC,OAAO,CAAC7jC,IAAR,CAAa,GAAb,CAAhC;AACH;;AACDiiC,aAAS;AACL,WAAK9b,IAAL,CAAUje,OAAV,CAAkB,CAACtI,CAAD,EAAIP,CAAJ,KAAS;AACvBO,SAAC,CAACkK,EAAF,GAAOzK,CAAP;AACH,OAFD;AAGH;;AACDykC,sBAAkB,CAACl7B,IAAD,EAAc;AAC5B,WAAKud,IAAL,GAAY,KAAKA,IAAL,CAAUxmB,MAAV,CAAiBC,CAAC,IAAIA,CAAC,KAAKgJ,IAA5B,CAAZ;AAEA,WAAKq5B,SAAL;AACH;AAGD;;;AACA8B,qBAAiB;AACb,aAAO,KAAKC,MAAL,IACH,CAAC,KAAKL,aAAL,EAAD,IACA,CAAC,KAAKC,SAAL,EAFL;AAGH;;AACDK,aAAS;AACL,WAAKD,MAAL,GAAc,IAAd;AACA,WAAKvD,OAAL,CAAaC,IAAb,CAAkB,KAAKva,IAAvB,EAFK,CAGL;AACA;AACA;AACA;AAEA;AACH,KA5K+C,CA6KhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;;;AACA+d,WAAO,CAACrqB,IAAD,EAAa;AAChB,aAAO,KAAKsM,IAAL,CAAU2c,IAAV,CAAeljC,CAAC,IAAIA,CAAC,CAACX,IAAF,KAAW4a,IAA/B,CAAP;AACH;;AACDsqB,iBAAa,CAACpjB,OAAD,EAAgB;AACzB,YAAMqjB,QAAQ,GAAGrjB,OAAO,CAAClhB,IAAR,EAAjB;;AACA,WAAKqiC,iBAAL,CAAuBmC,YAAvB,GAAsC,EAAtC;AACA,WAAKC,eAAL,GAAuBvjB,OAAvB;;AAEA,UAAI,CAACqjB,QAAL,EAAe;AACX,aAAKG,YAAL,GAAoB,EAApB,CADW,CAEX;AACH,OAHD,MAGO;AACH,aAAK3C,cAAL,CAAoB3d,cAApB,CAAmC,KAAK7e,IAAxC,EAA8C2b,OAA9C,EAAuD3d,SAAvD,CAAiEqX,CAAC,IAAG;AACjE;AACA,eAAK8pB,YAAL,GAAoB9pB,CAApB;AACH,SAHD,EADG,CAKH;AACA;AACA;AACA;AACH;AACJ;;AACD+pB,yBAAqB,CAACzjB,OAAD,EAAgB;AACjC,UAAI,KAAKuiB,YAAL,CAAkBviB,OAAlB,CAAJ,EAAgC;AAAE;AAAS;;AAE3C,WAAKmhB,iBAAL,CAAuBmB,OAAvB,CAA+BtiB,OAA/B;AACH;;AA5N+C;;;qBAAvC4gB,uBAAqB91B,+DAAAA,CAAAA,qDAAAA,GAAAA,+DAAAA,CAAAA,qFAAAA,GAAAA,+DAAAA,CAAAA,4IAAAA;AAAA;;;UAArB81B;AAAqB71B;AAAAo1B;AAAA;;;;;;;;;;;;;iBAArBl1B;AAAiB;AAAA,iBAAjBA,sBAAiB;AAAC;;;;;;;;;;;;AChB/BH,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkCA,QAAAA,wDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AAAuBH,QAAAA,0DAAAA;AAC7DA,QAAAA,0DAAAA;AAIAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAmBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AACvBA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA6DA,QAAAA,wDAAAA;AAAA,iBAAcG,yBAAd;AAAmC,SAAnC;AAAqCH,QAAAA,0DAAAA;AACtGA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA+DA,QAAAA,wDAAAA;AAAA,iBAASG,qBAAT;AAA0B,SAA1B;AAC3DH,QAAAA,uDAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AAAuBA,QAAAA,oDAAAA;AAAgDA,QAAAA,0DAAAA;AAC3EA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,wDAAAA;AAWJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAmEA,QAAAA,wDAAAA;AAAA,iBAASG,eAAT;AAAoB,SAApB;AAAsBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AAC/FA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAmBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AACvBA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA2BA,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AAEjCA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,wDAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,wDAAAA,mFAAAA,oEAAAA;;;;;;;;AAvDmCA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAUiCA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAGxBA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA,YAAAA,6DAAAA;AAGGA,QAAAA,uDAAAA;AAAAA,QAAAA,gEAAAA;AAMgBA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAelBA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA,YAAAA,6DAAAA;AAYVA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;;;;;;;ADrCnC,SAAa81B,qBAAb;AAAA;;;;;;;;;;;;;;;;;;;;;;AEhBA;AAEA;AACA;AACA;AACA;AACA;;AAaO,IAAM70B,kBAAb;AAAM,QAAOA,kBAAP,CAAyB;;;qBAAlBA;AAAkB;;;UAAlBA;;;cAVA,CACLkwB,yDADK,EAELC,2FAFK,EAGLwH,oGAHK,EAILC,wGAJK,EAKL7E,4HALK;;AAUb,SAAa/yB,kBAAb;AAAA;;;sHAAaA,oBAAkB;AAAA2F,mBAHZkvB,4EAGY;AAHStvB,cANhC2qB,yDAMgC,EALhCC,2FAKgC,EAJhCwH,oGAIgC,EAHhCC,wGAGgC,EAFhC7E,4HAEgC,CAGT;AALFzhB,cAGfujB,4EAHe;AAKE;AAFI;;;;;;;;;;;;;;;;;;;;;;;;;ACjBnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AAGM,MAAOoD,QAAP,CAAe;AACFA,mBAAU;AACrBC,4BAA0B,EAAEL,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,4FAFsB;AAGtCQ,iBAAa,EAAE7f,oFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtCC,aAAS,EAAE,OAN2B;AAOtCC,cAAU,EAAE;AAP0B,GAAd,CADP;AAUrBC,0BAAwB,EAAEf,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,+FAFoB;AAGpCQ,iBAAa,EAAE7f,oFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,OANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAVL;AAmBrBG,0BAAwB,EAAEjB,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,6FAFoB;AAGpCQ,iBAAa,EAAE7f,oFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,UANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAnBL;AA4BrBK,4BAA0B,EAAEnB,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,yFAFsB;AAGtCQ,iBAAa,EAAE7f,oFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtCC,aAAS,EAAE,MAN2B;AAOtCC,cAAU,EAAE;AAP0B,GAAd,CA5BP;AAqCrBO,4BAA0B,EAAErB,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,yFAFsB;AAGtCQ,iBAAa,EAAE7f,oFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtCC,aAAS,EAAE,MAN2B;AAOtCC,cAAU,EAAE;AAP0B,GAAd,CArCP;AA8CrBQ,4BAA0B,EAAEtB,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,yFAFsB;AAGtCQ,iBAAa,EAAE7f,oFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtCC,aAAS,EAAE,MAN2B;AAOtCC,cAAU,EAAE;AAP0B,GAAd,CA9CP;AAuDrBS,kCAAgC,EAAEvB,iDAAA,CAAc;AAC5Chf,YAAQ,EAAEP,oFADkC;AAE5C8f,kBAAc,EAAEN,6FAF4B;AAG5CQ,iBAAa,EAAE7f,oFAH6B;AAI5C+f,gBAAY,EAAEjgB,4EAJ8B;AAK5CkgB,kBAAc,EAAE,EAL4B;AAM5CC,aAAS,EAAE,OANiC;AAO5CC,cAAU,EAAE;AAPgC,GAAd,CAvDb;AAgErBY,mCAAiC,EAAE1B,iDAAA,CAAc;AAC7Chf,YAAQ,EAAEP,qFADmC;AAE7C8f,kBAAc,EAAEN,6FAF6B;AAG7CQ,iBAAa,EAAE7f,oFAH8B;AAI7C+f,gBAAY,EAAEjgB,4EAJ+B;AAK7CkgB,kBAAc,EAAE,EAL6B;AAM7CC,aAAS,EAAE,OANkC;AAO7CC,cAAU,EAAE;AAPiC,GAAd,CAhEd;AAyErBa,kCAAgC,EAAE3B,iDAAA,CAAc;AAC5Chf,YAAQ,EAAEP,oFADkC;AAE5C8f,kBAAc,EAAEN,6FAF4B;AAG5CQ,iBAAa,EAAE7f,oFAH6B;AAI5C+f,gBAAY,EAAEjgB,4EAJ8B;AAK5CkgB,kBAAc,EAAE,EAL4B;AAM5CC,aAAS,EAAE,OANiC;AAO5CC,cAAU,EAAE;AAPgC,GAAd,CAzEb;AAkFrBc,0BAAwB,EAAE5B,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,iGAFoB;AAGpCQ,iBAAa,EAAE7f,wFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,KANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAlFL;AA2FrBiB,0BAAwB,EAAE/B,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,iGAFoB;AAGpCQ,iBAAa,EAAE7f,wFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,KANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CA3FL;AAoGrBkB,0BAAwB,EAAEhC,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,iGAFoB;AAGpCQ,iBAAa,EAAE7f,wFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,KANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CApGL;AA6GrBmB,2BAAyB,EAAEjC,iDAAA,CAAc;AACrChf,YAAQ,EAAEP,6EAD2B;AAErC8f,kBAAc,EAAEN,+FAFqB;AAGrCQ,iBAAa,EAAE7f,wFAHsB;AAIrC+f,gBAAY,EAAEjgB,4EAJuB;AAKrCkgB,kBAAc,EAAE,EALqB;AAMrCC,aAAS,EAAE,UAN0B;AAOrCC,cAAU,EAAE;AAPyB,GAAd,CA7GN;AAsHrBqB,2BAAyB,EAAEnC,iDAAA,CAAc;AACrChf,YAAQ,EAAEP,6EAD2B;AAErC8f,kBAAc,EAAEN,+FAFqB;AAGrCQ,iBAAa,EAAE7f,wFAHsB;AAIrC+f,gBAAY,EAAEjgB,4EAJuB;AAKrCkgB,kBAAc,EAAE,EALqB;AAMrCC,aAAS,EAAE,UAN0B;AAOrCC,cAAU,EAAE;AAPyB,GAAd,CAtHN;AA+HrBsB,2BAAyB,EAAEpC,iDAAA,CAAc;AACrChf,YAAQ,EAAEP,6EAD2B;AAErC8f,kBAAc,EAAEN,+FAFqB;AAGrCQ,iBAAa,EAAE7f,wFAHsB;AAIrC+f,gBAAY,EAAEjgB,4EAJuB;AAKrCkgB,kBAAc,EAAE,EALqB;AAMrCC,aAAS,EAAE,UAN0B;AAOrCC,cAAU,EAAE;AAPyB,GAAd,CA/HN;AAwIrBuB,0BAAwB,EAAErC,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,2FAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,MANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAxIL;AAiJrB0B,0BAAwB,EAAExC,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,2FAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,MANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAjJL;AA0JrB2B,4BAA0B,EAAEzC,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,2FAFsB;AAGtCQ,iBAAa,EAAE7f,uFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtCC,aAAS,EAAE,MAN2B;AAOtCC,cAAU,EAAE;AAP0B,GAAd,CA1JP;AAmKrB4B,0BAAwB,EAAE1C,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,2FAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,QANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAnKL;AA4KrB6B,0BAAwB,EAAE3C,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,2FAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,MANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CA5KL;AAqLrB+B,0BAAwB,EAAE7C,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,2FAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,MANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CArLL;AA8LrBgC,4BAA0B,EAAE9C,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,2FAFsB;AAGtCQ,iBAAa,EAAE7f,uFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtCC,aAAS,EAAE,MAN2B;AAOtCC,cAAU,EAAE;AAP0B,GAAd,CA9LP;AAuMrBiC,0BAAwB,EAAE/C,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,2FAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,QANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAvML;AAgNrBkC,0BAAwB,EAAEhD,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,2FAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,MANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAhNL;AAyNrBoC,0BAAwB,EAAElD,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,2FAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,MANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAzNL;AAkOrBqC,4BAA0B,EAAEnD,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,2FAFsB;AAGtCQ,iBAAa,EAAE7f,uFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtCC,aAAS,EAAE,MAN2B;AAOtCC,cAAU,EAAE;AAP0B,GAAd,CAlOP;AA2OrBsC,0BAAwB,EAAEpD,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,2FAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,QANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CA3OL;AAoPrBuC,0BAAwB,EAAErD,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,0GAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,KANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CApPL;AA6PrByC,0BAAwB,EAAEvD,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,0GAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,KANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CA7PL;AAsQrB0C,0BAAwB,EAAExD,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,uGAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,KANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAtQL;AA+QrB4C,0BAAwB,EAAE1D,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,uGAFoB;AAGpCQ,iBAAa,EAAE7f,uFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,KANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CA/QL;AAwRrB6C,4BAA0B,EAAE3D,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,6FAFsB;AAGtCQ,iBAAa,EAAE7f,yFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtC;AACAC,aAAS,EAAE,UAP2B;AAQtCC,cAAU,EAAE;AAR0B,GAAd,CAxRP;AAkSrBgD,4BAA0B,EAAE9D,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,6FAFsB;AAGtCQ,iBAAa,EAAE7f,yFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtC;AACAC,aAAS,EAAE,UAP2B;AAQtCC,cAAU,EAAE;AAR0B,GAAd,CAlSP;AA4SrBkD,4BAA0B,EAAEhE,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,6FAFsB;AAGtCQ,iBAAa,EAAE7f,yFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtC;AACAC,aAAS,EAAE,UAP2B;AAQtCC,cAAU,EAAE;AAR0B,GAAd,CA5SP;AAsTrBoD,0BAAwB,EAAElE,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,sGAFoB;AAGpCQ,iBAAa,EAAE7f,yFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,MANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAtTL;AA+TrBuD,0BAAwB,EAAErE,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,0FAFoB;AAGpCQ,iBAAa,EAAE7f,sFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,UANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CA/TL;AAwUrB0D,0BAAwB,EAAExE,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,0FAFoB;AAGpCQ,iBAAa,EAAE7f,sFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,UANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAxUL;AAiVrB2D,0BAAwB,EAAEzE,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,0FAFoB;AAGpCQ,iBAAa,EAAE7f,sFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,UANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAjVL;AA0VrB6D,0BAAwB,EAAE3E,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,0FAFoB;AAGpCQ,iBAAa,EAAE7f,sFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,UANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CA1VL;AAmWrB+D,0BAAwB,EAAE7E,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,mGAFoB;AAGpCQ,iBAAa,EAAE7f,sFAHqB;AAIpC+f,gBAAY,EAAEjgB,4EAJsB;AAKpCkgB,kBAAc,EAAE,EALoB;AAMpCC,aAAS,EAAE,UANyB;AAOpCC,cAAU,EAAE;AAPwB,GAAd,CAnWL;AA4WrBiE,4BAA0B,EAAE/E,iDAAA,CAAc;AACtChf,YAAQ,EAAEP,8EAD4B;AAEtC8f,kBAAc,EAAEN,gGAFsB;AAGtCQ,iBAAa,EAAE7f,sFAHuB;AAItC+f,gBAAY,EAAEjgB,4EAJwB;AAKtCkgB,kBAAc,EAAE,EALsB;AAMtCC,aAAS,EAAE,MAN2B;AAOtCC,cAAU,EAAE;AAP0B,GAAd,CA5WP;AAqXrB/R,kBAAgB,EAAEiR,iDAAA,CAAc;AAC5Bhf,YAAQ,EAAEP,oEADkB;AAE5B8f,kBAAc,EAAEN,0EAFY;AAG5BQ,iBAAa,EAAE7f,oEAHa;AAI5B+f,gBAAY,EAAEjgB,kEAJc;AAK5BkgB,kBAAc,EAAE,MALY;AAM5BC,aAAS,EAAE,MANiB;AAO5BC,cAAU,EAAE;AAPgB,GAAd,CArXG;AA8XrB7R,sBAAoB,EAAE+Q,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,0EAFgB;AAGhCQ,iBAAa,EAAE7f,oEAHiB;AAIhC+f,gBAAY,EAAEjgB,kEAJkB;AAKhCkgB,kBAAc,EAAE,MALgB;AAMhCC,aAAS,EAAE,MANqB;AAOhCC,cAAU,EAAE;AAPoB,GAAd,CA9XD;AAuYrB5R,qBAAmB,EAAE8Q,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,6EAFe;AAG/BQ,iBAAa,EAAE7f,oEAHgB;AAI/B+f,gBAAY,EAAEjgB,kEAJiB;AAK/BkgB,kBAAc,EAAE,MALe;AAM/BC,aAAS,EAAE,MANoB;AAO/BC,cAAU,EAAE;AAPmB,GAAd,CAvYA;AAgZrB1R,yBAAuB,EAAE4Q,iDAAA,CAAc;AACnChf,YAAQ,EAAEP,2EADyB;AAEnC8f,kBAAc,EAAEN,6EAFmB;AAGnCQ,iBAAa,EAAE7f,oEAHoB;AAInC+f,gBAAY,EAAEjgB,kEAJqB;AAKnCkgB,kBAAc,EAAE,MALmB;AAMnCC,aAAS,EAAE,MANwB;AAOnCC,cAAU,EAAE;AAPuB,GAAd,CAhZJ;AAyZrBzR,mBAAiB,EAAE2Q,iDAAA,CAAc;AAC7Bhf,YAAQ,EAAEP,qEADmB;AAE7B8f,kBAAc,EAAEN,2EAFa;AAG7BQ,iBAAa,EAAE7f,oEAHc;AAI7B+f,gBAAY,EAAEjgB,kEAJe;AAK7BkgB,kBAAc,EAAE,MALa;AAM7BC,aAAS,EAAE,MANkB;AAO7BC,cAAU,EAAE;AAPiB,GAAd,CAzZE;AAkarBvR,uBAAqB,EAAEyQ,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,2EAFiB;AAGjCQ,iBAAa,EAAE7f,oEAHkB;AAIjC+f,gBAAY,EAAEjgB,kEAJmB;AAKjCkgB,kBAAc,EAAE,MALiB;AAMjCC,aAAS,EAAE,MANsB;AAOjCC,cAAU,EAAE;AAPqB,GAAd,CAlaF;AA2arBuE,qBAAmB,EAAErF,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,mFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA3aA;AAqbrB2E,sBAAoB,EAAEzF,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,mFAFgB;AAGhCQ,iBAAa,EAAE7f,2EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CArbD;AA+brB4E,yBAAuB,EAAE1F,iDAAA,CAAc;AACnChf,YAAQ,EAAEP,2EADyB;AAEnC8f,kBAAc,EAAEN,mFAFmB;AAGnCQ,iBAAa,EAAE7f,2EAHoB;AAInC+f,gBAAY,EAAEjgB,mEAJqB;AAKnCkgB,kBAAc,EAAE,IALmB;AAMnCC,aAAS,EAAE,QANwB;AAOnC2E,oBAAgB,EAAE,MAPiB;AAQnC1E,cAAU,EAAE;AARuB,GAAd,CA/bJ;AAycrB6E,sBAAoB,EAAE3F,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,mFAFgB;AAGhCQ,iBAAa,EAAE7f,2EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAzcD;AAmdrB8E,oBAAkB,EAAE5F,iDAAA,CAAc;AAC9Bhf,YAAQ,EAAEP,sEADoB;AAE9B8f,kBAAc,EAAEN,mFAFc;AAG9BQ,iBAAa,EAAE7f,2EAHe;AAI9B+f,gBAAY,EAAEjgB,mEAJgB;AAK9BkgB,kBAAc,EAAE,IALc;AAM9BC,aAAS,EAAE,QANmB;AAO9B2E,oBAAgB,EAAE,MAPY;AAQ9B1E,cAAU,EAAE;AARkB,GAAd,CAndC;AA6drB+E,sBAAoB,EAAE7F,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,mFAFgB;AAGhCQ,iBAAa,EAAE7f,2EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA7dD;AAuerBgF,sBAAoB,EAAE9F,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,mFAFgB;AAGhCQ,iBAAa,EAAE7f,2EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAveD;AAifrBiF,qBAAmB,EAAE/F,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,mFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAjfA;AA2frBkF,uBAAqB,EAAEhG,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,mFAFiB;AAGjCQ,iBAAa,EAAE7f,2EAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,IALiB;AAMjCC,aAAS,EAAE,QANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CA3fF;AAqgBrBmF,uBAAqB,EAAEjG,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,mFAFiB;AAGjCQ,iBAAa,EAAE7f,2EAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,IALiB;AAMjCC,aAAS,EAAE,QANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CArgBF;AA+gBrBoF,qBAAmB,EAAElG,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,mFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA/gBA;AAyhBrBqF,qBAAmB,EAAEnG,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,mFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAzhBA;AAmiBrBsF,qBAAmB,EAAEpG,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,mFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAniBA;AA6iBrBuF,qBAAmB,EAAErG,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,mFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA7iBA;AAujBrBwF,wBAAsB,EAAEtG,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,mFAFkB;AAGlCQ,iBAAa,EAAE7f,2EAHmB;AAIlC+f,gBAAY,EAAEjgB,mEAJoB;AAKlCkgB,kBAAc,EAAE,IALkB;AAMlCC,aAAS,EAAE,QANuB;AAOlC2E,oBAAgB,EAAE,MAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CAvjBH;AAikBrByF,sBAAoB,EAAEvG,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,mFAFgB;AAGhCQ,iBAAa,EAAE7f,2EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAjkBD;AA2kBrB0F,sBAAoB,EAAExG,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,mFAFgB;AAGhCQ,iBAAa,EAAE7f,2EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA3kBD;AAqlBrB2F,sBAAoB,EAAEzG,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,mFAFgB;AAGhCQ,iBAAa,EAAE7f,2EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CArlBD;AA+lBrB4F,uBAAqB,EAAE1G,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,mFAFiB;AAGjCQ,iBAAa,EAAE7f,2EAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,IALiB;AAMjCC,aAAS,EAAE,QANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CA/lBF;AAymBrB6F,qBAAmB,EAAE3G,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,mFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAzmBA;AAmnBrB8F,qBAAmB,EAAE5G,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,mFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAnnBA;AA6nBrB+F,yBAAuB,EAAE7G,iDAAA,CAAc;AACnChf,YAAQ,EAAEP,2EADyB;AAEnC8f,kBAAc,EAAEN,mFAFmB;AAGnCQ,iBAAa,EAAE7f,2EAHoB;AAInC+f,gBAAY,EAAEjgB,mEAJqB;AAKnCkgB,kBAAc,EAAE,IALmB;AAMnCC,aAAS,EAAE,QANwB;AAOnC2E,oBAAgB,EAAE,MAPiB;AAQnC1E,cAAU,EAAE;AARuB,GAAd,CA7nBJ;AAuoBrBgG,iCAA+B,EAAE9G,iDAAA,CAAc;AAC3Chf,YAAQ,EAAEP,mFADiC;AAE3C8f,kBAAc,EAAEN,mFAF2B;AAG3CQ,iBAAa,EAAE7f,2EAH4B;AAI3C+f,gBAAY,EAAEjgB,mEAJ6B;AAK3CkgB,kBAAc,EAAE,WAL2B;AAM3CC,aAAS,EAAE,WANgC;AAO3C2E,oBAAgB,EAAE,MAPyB;AAQ3C1E,cAAU,EAAE;AAR+B,GAAd,CAvoBZ;AAipBrBiG,cAAY,EAAE/G,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,kFAFQ;AAGxBQ,iBAAa,EAAE7f,2EAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,MALQ;AAMxBC,aAAS,EAAE,MANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CAjpBO;AA2pBrBmG,uBAAqB,EAAEjH,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,kFAFiB;AAGjCQ,iBAAa,EAAE7f,2EAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,MALiB;AAMjCC,aAAS,EAAE,WANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CA3pBF;AAqqBrBoG,qBAAmB,EAAElH,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,kFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,MALe;AAM/BC,aAAS,EAAE,WANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CArqBA;AA+qBrBqG,sBAAoB,EAAEnH,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,kFAFgB;AAGhCQ,iBAAa,EAAE7f,2EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,MALgB;AAMhCC,aAAS,EAAE,WANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA/qBD;AAyrBrBsG,wBAAsB,EAAEpH,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,kFAFkB;AAGlCQ,iBAAa,EAAE7f,2EAHmB;AAIlC+f,gBAAY,EAAEjgB,mEAJoB;AAKlCkgB,kBAAc,EAAE,MALkB;AAMlCC,aAAS,EAAE,WANuB;AAOlC2E,oBAAgB,EAAE,MAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CAzrBH;AAmsBrBuG,qBAAmB,EAAErH,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,kFAFe;AAG/BQ,iBAAa,EAAE7f,2EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,MALe;AAM/BC,aAAS,EAAE,WANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAnsBA;AA6sBrBwG,cAAY,EAAEtH,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,qFAFQ;AAGxBQ,iBAAa,EAAE7f,2EAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,MALQ;AAMxBC,aAAS,EAAE,MANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CA7sBO;AAutBrB0G,cAAY,EAAExH,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,oFAFQ;AAGxBQ,iBAAa,EAAE7f,kFAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,IALQ;AAMxBC,aAAS,EAAE,QANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CAvtBO;AAiuBrB4G,qBAAmB,EAAE1H,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,sFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAjuBA;AA2uBrB+G,sBAAoB,EAAE7H,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,sFAFgB;AAGhCQ,iBAAa,EAAE7f,8EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA3uBD;AAqvBrBgH,yBAAuB,EAAE9H,iDAAA,CAAc;AACnChf,YAAQ,EAAEP,2EADyB;AAEnC8f,kBAAc,EAAEN,sFAFmB;AAGnCQ,iBAAa,EAAE7f,8EAHoB;AAInC+f,gBAAY,EAAEjgB,mEAJqB;AAKnCkgB,kBAAc,EAAE,IALmB;AAMnCC,aAAS,EAAE,QANwB;AAOnC2E,oBAAgB,EAAE,MAPiB;AAQnC1E,cAAU,EAAE;AARuB,GAAd,CArvBJ;AA+vBrBiH,sBAAoB,EAAE/H,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,sFAFgB;AAGhCQ,iBAAa,EAAE7f,8EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA/vBD;AAywBrBkH,oBAAkB,EAAEhI,iDAAA,CAAc;AAC9Bhf,YAAQ,EAAEP,sEADoB;AAE9B8f,kBAAc,EAAEN,sFAFc;AAG9BQ,iBAAa,EAAE7f,8EAHe;AAI9B+f,gBAAY,EAAEjgB,mEAJgB;AAK9BkgB,kBAAc,EAAE,IALc;AAM9BC,aAAS,EAAE,QANmB;AAO9B2E,oBAAgB,EAAE,MAPY;AAQ9B1E,cAAU,EAAE;AARkB,GAAd,CAzwBC;AAmxBrBmH,sBAAoB,EAAEjI,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,sFAFgB;AAGhCQ,iBAAa,EAAE7f,8EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAnxBD;AA6xBrBoH,sBAAoB,EAAElI,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,sFAFgB;AAGhCQ,iBAAa,EAAE7f,8EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA7xBD;AAuyBrBqH,qBAAmB,EAAEnI,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,sFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAvyBA;AAizBrBsH,uBAAqB,EAAEpI,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,sFAFiB;AAGjCQ,iBAAa,EAAE7f,8EAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,IALiB;AAMjCC,aAAS,EAAE,QANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAjzBF;AA2zBrBuH,uBAAqB,EAAErI,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,sFAFiB;AAGjCQ,iBAAa,EAAE7f,8EAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,IALiB;AAMjCC,aAAS,EAAE,QANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CA3zBF;AAq0BrBwH,qBAAmB,EAAEtI,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,sFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAr0BA;AA+0BrByH,qBAAmB,EAAEvI,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,sFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA/0BA;AAy1BrB0H,qBAAmB,EAAExI,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,sFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAz1BA;AAm2BrB2H,qBAAmB,EAAEzI,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,sFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAn2BA;AA62BrB4H,wBAAsB,EAAE1I,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,sFAFkB;AAGlCQ,iBAAa,EAAE7f,8EAHmB;AAIlC+f,gBAAY,EAAEjgB,mEAJoB;AAKlCkgB,kBAAc,EAAE,IALkB;AAMlCC,aAAS,EAAE,QANuB;AAOlC2E,oBAAgB,EAAE,MAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CA72BH;AAu3BrB6H,sBAAoB,EAAE3I,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,sFAFgB;AAGhCQ,iBAAa,EAAE7f,8EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAv3BD;AAi4BrB8H,sBAAoB,EAAE5I,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,sFAFgB;AAGhCQ,iBAAa,EAAE7f,8EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAj4BD;AA24BrB+H,sBAAoB,EAAE7I,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,sFAFgB;AAGhCQ,iBAAa,EAAE7f,8EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA34BD;AAq5BrBgI,uBAAqB,EAAE9I,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,sFAFiB;AAGjCQ,iBAAa,EAAE7f,8EAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,IALiB;AAMjCC,aAAS,EAAE,QANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAr5BF;AA+5BrBiI,qBAAmB,EAAE/I,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,sFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA/5BA;AAy6BrBkI,qBAAmB,EAAEhJ,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,sFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAz6BA;AAm7BrBmI,yBAAuB,EAAEjJ,iDAAA,CAAc;AACnChf,YAAQ,EAAEP,2EADyB;AAEnC8f,kBAAc,EAAEN,sFAFmB;AAGnCQ,iBAAa,EAAE7f,8EAHoB;AAInC+f,gBAAY,EAAEjgB,mEAJqB;AAKnCkgB,kBAAc,EAAE,IALmB;AAMnCC,aAAS,EAAE,QANwB;AAOnC2E,oBAAgB,EAAE,MAPiB;AAQnC1E,cAAU,EAAE;AARuB,GAAd,CAn7BJ;AA67BrBoI,cAAY,EAAElJ,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,qFAFQ;AAGxBQ,iBAAa,EAAE7f,8EAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,MALQ;AAMxBC,aAAS,EAAE,MANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CA77BO;AAu8BrBsI,uBAAqB,EAAEpJ,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,qFAFiB;AAGjCQ,iBAAa,EAAE7f,8EAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,MALiB;AAMjCC,aAAS,EAAE,WANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAv8BF;AAi9BrBuI,qBAAmB,EAAErJ,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,qFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,MALe;AAM/BC,aAAS,EAAE,WANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAj9BA;AA29BrBwI,sBAAoB,EAAEtJ,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,qFAFgB;AAGhCQ,iBAAa,EAAE7f,8EAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,MALgB;AAMhCC,aAAS,EAAE,WANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA39BD;AAq+BrByI,wBAAsB,EAAEvJ,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,qFAFkB;AAGlCQ,iBAAa,EAAE7f,8EAHmB;AAIlC+f,gBAAY,EAAEjgB,mEAJoB;AAKlCkgB,kBAAc,EAAE,MALkB;AAMlCC,aAAS,EAAE,WANuB;AAOlC2E,oBAAgB,EAAE,MAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CAr+BH;AA++BrB0I,qBAAmB,EAAExJ,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,qFAFe;AAG/BQ,iBAAa,EAAE7f,8EAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,MALe;AAM/BC,aAAS,EAAE,WANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA/+BA;AAy/BrB2I,cAAY,EAAEzJ,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,wFAFQ;AAGxBQ,iBAAa,EAAE7f,8EAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,MALQ;AAMxBC,aAAS,EAAE,MANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CAz/BO;AAmgCrB6I,cAAY,EAAE3J,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,oFAFQ;AAGxBQ,iBAAa,EAAE7f,kFAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,IALQ;AAMxBC,aAAS,EAAE,QANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CAngCO;AA6gCrB8I,qBAAmB,EAAE5J,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,4FAFe;AAG/BQ,iBAAa,EAAE7f,oFAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA7gCA;AAuhCrBiJ,sBAAoB,EAAE/J,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,4FAFgB;AAGhCQ,iBAAa,EAAE7f,oFAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAvhCD;AAiiCrBkJ,yBAAuB,EAAEhK,iDAAA,CAAc;AACnChf,YAAQ,EAAEP,2EADyB;AAEnC8f,kBAAc,EAAEN,4FAFmB;AAGnCQ,iBAAa,EAAE7f,oFAHoB;AAInC+f,gBAAY,EAAEjgB,mEAJqB;AAKnCkgB,kBAAc,EAAE,IALmB;AAMnCC,aAAS,EAAE,QANwB;AAOnC2E,oBAAgB,EAAE,MAPiB;AAQnC1E,cAAU,EAAE;AARuB,GAAd,CAjiCJ;AA2iCrBmJ,sBAAoB,EAAEjK,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,4FAFgB;AAGhCQ,iBAAa,EAAE7f,oFAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA3iCD;AAqjCrBoJ,oBAAkB,EAAElK,iDAAA,CAAc;AAC9Bhf,YAAQ,EAAEP,sEADoB;AAE9B8f,kBAAc,EAAEN,4FAFc;AAG9BQ,iBAAa,EAAE7f,oFAHe;AAI9B+f,gBAAY,EAAEjgB,mEAJgB;AAK9BkgB,kBAAc,EAAE,IALc;AAM9BC,aAAS,EAAE,QANmB;AAO9B2E,oBAAgB,EAAE,MAPY;AAQ9B1E,cAAU,EAAE;AARkB,GAAd,CArjCC;AA+jCrBqJ,sBAAoB,EAAEnK,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,4FAFgB;AAGhCQ,iBAAa,EAAE7f,oFAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA/jCD;AAykCrBsJ,sBAAoB,EAAEpK,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,4FAFgB;AAGhCQ,iBAAa,EAAE7f,oFAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAzkCD;AAmlCrBuJ,qBAAmB,EAAErK,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,4FAFe;AAG/BQ,iBAAa,EAAE7f,oFAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAnlCA;AA6lCrBwJ,uBAAqB,EAAEtK,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,4FAFiB;AAGjCQ,iBAAa,EAAE7f,oFAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,IALiB;AAMjCC,aAAS,EAAE,QANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CA7lCF;AAumCrByJ,uBAAqB,EAAEvK,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,4FAFiB;AAGjCQ,iBAAa,EAAE7f,oFAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,IALiB;AAMjCC,aAAS,EAAE,QANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAvmCF;AAinCrB0J,qBAAmB,EAAExK,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,4FAFe;AAG/BQ,iBAAa,EAAE7f,oFAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAjnCA;AA2nCrB2J,qBAAmB,EAAEzK,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,4FAFe;AAG/BQ,iBAAa,EAAE7f,oFAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA3nCA;AAqoCrB4J,qBAAmB,EAAE1K,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,4FAFe;AAG/BQ,iBAAa,EAAE7f,oFAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAroCA;AA+oCrB6J,qBAAmB,EAAE3K,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,4FAFe;AAG/BQ,iBAAa,EAAE7f,oFAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA/oCA;AAypCrB8J,wBAAsB,EAAE5K,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,4FAFkB;AAGlCQ,iBAAa,EAAE7f,oFAHmB;AAIlC+f,gBAAY,EAAEjgB,mEAJoB;AAKlCkgB,kBAAc,EAAE,IALkB;AAMlCC,aAAS,EAAE,QANuB;AAOlC2E,oBAAgB,EAAE,MAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CAzpCH;AAmqCrB+J,sBAAoB,EAAE7K,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,4FAFgB;AAGhCQ,iBAAa,EAAE7f,oFAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAnqCD;AA6qCrBgK,sBAAoB,EAAE9K,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,4FAFgB;AAGhCQ,iBAAa,EAAE7f,oFAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA7qCD;AAurCrBiK,sBAAoB,EAAE/K,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,4FAFgB;AAGhCQ,iBAAa,EAAE7f,oFAHiB;AAIhC+f,gBAAY,EAAEjgB,mEAJkB;AAKhCkgB,kBAAc,EAAE,IALgB;AAMhCC,aAAS,EAAE,QANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAvrCD;AAisCrBkK,uBAAqB,EAAEhL,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,4FAFiB;AAGjCQ,iBAAa,EAAE7f,oFAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,IALiB;AAMjCC,aAAS,EAAE,QANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAjsCF;AA2sCrBmK,qBAAmB,EAAEjL,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,4FAFe;AAG/BQ,iBAAa,EAAE7f,oFAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CA3sCA;AAqtCrBoK,qBAAmB,EAAElL,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,4FAFe;AAG/BQ,iBAAa,EAAE7f,oFAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,IALe;AAM/BC,aAAS,EAAE,QANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CArtCA;AA+tCrBqK,yBAAuB,EAAEnL,iDAAA,CAAc;AACnChf,YAAQ,EAAEP,2EADyB;AAEnC8f,kBAAc,EAAEN,4FAFmB;AAGnCQ,iBAAa,EAAE7f,oFAHoB;AAInC+f,gBAAY,EAAEjgB,mEAJqB;AAKnCkgB,kBAAc,EAAE,IALmB;AAMnCC,aAAS,EAAE,QANwB;AAOnC2E,oBAAgB,EAAE,MAPiB;AAQnC1E,cAAU,EAAE;AARuB,GAAd,CA/tCJ;AAyuCrBsK,qBAAmB,EAAEpL,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,2FAFe;AAG/BQ,iBAAa,EAAE7f,oFAHgB;AAI/B+f,gBAAY,EAAEjgB,mEAJiB;AAK/BkgB,kBAAc,EAAE,MALe;AAM/BC,aAAS,EAAE,MANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAzuCA;AAmvCrBwK,uBAAqB,EAAEtL,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,2FAFiB;AAGjCQ,iBAAa,EAAE7f,oFAHkB;AAIjC+f,gBAAY,EAAEjgB,mEAJmB;AAKjCkgB,kBAAc,EAAE,MALiB;AAMjCC,aAAS,EAAE,WANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAnvCF;AA6vCrByK,wBAAsB,EAAEvL,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,2FAFkB;AAGlCQ,iBAAa,EAAE7f,oFAHmB;AAIlC+f,gBAAY,EAAEjgB,mEAJoB;AAKlCkgB,kBAAc,EAAE,MALkB;AAMlCC,aAAS,EAAE,WANuB;AAOlC2E,oBAAgB,EAAE,MAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CA7vCH;AAuwCrB0K,cAAY,EAAExL,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,8FAFQ;AAGxBQ,iBAAa,EAAE7f,oFAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,MALQ;AAMxBC,aAAS,EAAE,MANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CAvwCO;AAixCrB4K,cAAY,EAAE1L,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,oFAFQ;AAGxBQ,iBAAa,EAAE7f,kFAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,IALQ;AAMxBC,aAAS,EAAE,QANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CAjxCO;AA2xCrB6K,cAAY,EAAE3L,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,wFAFQ;AAGxBQ,iBAAa,EAAE7f,2EAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,gBALQ;AAMxBC,aAAS,EAAE,UANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CA3xCO;AAqyCrBgL,cAAY,EAAE9L,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,sFAFQ;AAGxBQ,iBAAa,EAAE7f,2EAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,SALQ;AAMxBC,aAAS,EAAE,SANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CAryCO;AA+yCrBkL,cAAY,EAAEhM,iDAAA,CAAc;AACxBhf,YAAQ,EAAEP,gEADc;AAExB8f,kBAAc,EAAEN,mFAFQ;AAGxBQ,iBAAa,EAAE7f,2EAHS;AAIxB+f,gBAAY,EAAEjgB,mEAJU;AAKxBkgB,kBAAc,EAAE,SALQ;AAMxBC,aAAS,EAAE,SANa;AAOxB2E,oBAAgB,EAAE,MAPM;AAQxB1E,cAAU,EAAE;AARY,GAAd,CA/yCO;AAyzCrBoL,sBAAoB,EAAElM,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,wFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,WALgB;AAMhCC,aAAS,EAAE,SANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAzzCD;AAm0CrBuL,uBAAqB,EAAErM,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,wFAFiB;AAGjCQ,iBAAa,EAAE7f,gFAHkB;AAIjC+f,gBAAY,EAAEjgB,qEAJmB;AAKjCkgB,kBAAc,EAAE,WALiB;AAMjCC,aAAS,EAAE,SANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAn0CF;AA60CrBwL,0BAAwB,EAAEtM,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,wFAFoB;AAGpCQ,iBAAa,EAAE7f,gFAHqB;AAIpC+f,gBAAY,EAAEjgB,qEAJsB;AAKpCkgB,kBAAc,EAAE,WALoB;AAMpCC,aAAS,EAAE,SANyB;AAOpC2E,oBAAgB,EAAE,MAPkB;AAQpC1E,cAAU,EAAE;AARwB,GAAd,CA70CL;AAu1CrByL,uBAAqB,EAAEvM,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,wFAFiB;AAGjCQ,iBAAa,EAAE7f,gFAHkB;AAIjC+f,gBAAY,EAAEjgB,qEAJmB;AAKjCkgB,kBAAc,EAAE,WALiB;AAMjCC,aAAS,EAAE,SANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAv1CF;AAi2CrB0L,uBAAqB,EAAExM,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,wFAFiB;AAGjCQ,iBAAa,EAAE7f,gFAHkB;AAIjC+f,gBAAY,EAAEjgB,qEAJmB;AAKjCkgB,kBAAc,EAAE,WALiB;AAMjCC,aAAS,EAAE,SANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAj2CF;AA22CrB2L,sBAAoB,EAAEzM,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,wFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,WALgB;AAMhCC,aAAS,EAAE,SANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA32CD;AAq3CrB4L,wBAAsB,EAAE1M,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,wFAFkB;AAGlCQ,iBAAa,EAAE7f,gFAHmB;AAIlC+f,gBAAY,EAAEjgB,qEAJoB;AAKlCkgB,kBAAc,EAAE,WALkB;AAMlCC,aAAS,EAAE,SANuB;AAOlC2E,oBAAgB,EAAE,MAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CAr3CH;AA+3CrB6L,wBAAsB,EAAE3M,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,wFAFkB;AAGlCQ,iBAAa,EAAE7f,gFAHmB;AAIlC+f,gBAAY,EAAEjgB,qEAJoB;AAKlCkgB,kBAAc,EAAE,WALkB;AAMlCC,aAAS,EAAE,SANuB;AAOlC2E,oBAAgB,EAAE,MAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CA/3CH;AAy4CrB8L,sBAAoB,EAAE5M,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,wFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,WALgB;AAMhCC,aAAS,EAAE,SANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAz4CD;AAm5CrB+L,sBAAoB,EAAE7M,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,wFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,WALgB;AAMhCC,aAAS,EAAE,SANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAn5CD;AA65CrBgM,sBAAoB,EAAE9M,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,wFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,WALgB;AAMhCC,aAAS,EAAE,SANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CA75CD;AAu6CrBiM,sBAAoB,EAAE/M,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,wFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,WALgB;AAMhCC,aAAS,EAAE,SANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAv6CD;AAi7CrBkM,yBAAuB,EAAEhN,iDAAA,CAAc;AACnChf,YAAQ,EAAEP,2EADyB;AAEnC8f,kBAAc,EAAEN,wFAFmB;AAGnCQ,iBAAa,EAAE7f,gFAHoB;AAInC+f,gBAAY,EAAEjgB,qEAJqB;AAKnCkgB,kBAAc,EAAE,WALmB;AAMnCC,aAAS,EAAE,SANwB;AAOnC2E,oBAAgB,EAAE,MAPiB;AAQnC1E,cAAU,EAAE;AARuB,GAAd,CAj7CJ;AA27CrBmM,uBAAqB,EAAEjN,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,wFAFiB;AAGjCQ,iBAAa,EAAE7f,gFAHkB;AAIjC+f,gBAAY,EAAEjgB,qEAJmB;AAKjCkgB,kBAAc,EAAE,WALiB;AAMjCC,aAAS,EAAE,SANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CA37CF;AAq8CrBoM,wBAAsB,EAAElN,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,wFAFkB;AAGlCQ,iBAAa,EAAE7f,gFAHmB;AAIlC+f,gBAAY,EAAEjgB,qEAJoB;AAKlCkgB,kBAAc,EAAE,WALkB;AAMlCC,aAAS,EAAE,SANuB;AAOlC2E,oBAAgB,EAAE,MAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CAr8CH;AA+8CrBqM,uBAAqB,EAAEnN,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,wFAFiB;AAGjCQ,iBAAa,EAAE7f,gFAHkB;AAIjC+f,gBAAY,EAAEjgB,qEAJmB;AAKjCkgB,kBAAc,EAAE,WALiB;AAMjCC,aAAS,EAAE,SANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CA/8CF;AAy9CrBsM,uBAAqB,EAAEpN,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,wFAFiB;AAGjCQ,iBAAa,EAAE7f,gFAHkB;AAIjC+f,gBAAY,EAAEjgB,qEAJmB;AAKjCkgB,kBAAc,EAAE,WALiB;AAMjCC,aAAS,EAAE,SANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CAz9CF;AAm+CrBuM,qBAAmB,EAAErN,iDAAA,CAAc;AAC/Bhf,YAAQ,EAAEP,uEADqB;AAE/B8f,kBAAc,EAAEN,wFAFe;AAG/BQ,iBAAa,EAAE7f,gFAHgB;AAI/B+f,gBAAY,EAAEjgB,qEAJiB;AAK/BkgB,kBAAc,EAAE,WALe;AAM/BC,aAAS,EAAE,SANoB;AAO/B2E,oBAAgB,EAAE,MAPa;AAQ/B1E,cAAU,EAAE;AARmB,GAAd,CAn+CA;AA6+CrBwM,uBAAqB,EAAEtN,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,wFAFiB;AAGjCQ,iBAAa,EAAE7f,gFAHkB;AAIjC+f,gBAAY,EAAEjgB,qEAJmB;AAKjCkgB,kBAAc,EAAE,WALiB;AAMjCC,aAAS,EAAE,SANsB;AAOjC2E,oBAAgB,EAAE,MAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CA7+CF;AAu/CrByM,sBAAoB,EAAEvN,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,wFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,WALgB;AAMhCC,aAAS,EAAE,SANqB;AAOhC2E,oBAAgB,EAAE,MAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAv/CD;AAigDrB0M,sBAAoB,EAAExN,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,wFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,WALgB;AAMhCC,aAAS,EAAE,WANqB;AAOhC2E,oBAAgB,EAAE,QAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAjgDD;AA2gDrB2M,0BAAwB,EAAEzN,iDAAA,CAAc;AACpChf,YAAQ,EAAEP,4EAD0B;AAEpC8f,kBAAc,EAAEN,wFAFoB;AAGpCQ,iBAAa,EAAE7f,gFAHqB;AAIpC+f,gBAAY,EAAEjgB,qEAJsB;AAKpCkgB,kBAAc,EAAE,WALoB;AAMpCC,aAAS,EAAE,WANyB;AAOpC2E,oBAAgB,EAAE,QAPkB;AAQpC1E,cAAU,EAAE;AARwB,GAAd,CA3gDL;AAqhDrB4M,eAAa,EAAE1N,iDAAA,CAAc;AACzBhf,YAAQ,EAAEP,iEADe;AAEzB8f,kBAAc,EAAEN,uFAFS;AAGzBQ,iBAAa,EAAE7f,gFAHU;AAIzB+f,gBAAY,EAAEjgB,qEAJW;AAKzBkgB,kBAAc,EAAE,SALS;AAMzBC,aAAS,EAAE,OANc;AAOzB2E,oBAAgB,EAAE,EAPO;AAQzB1E,cAAU,EAAE;AARa,GAAd,CArhDM;AA+hDrB8M,wBAAsB,EAAE5N,iDAAA,CAAc;AAClChf,YAAQ,EAAEP,0EADwB;AAElC8f,kBAAc,EAAEN,uFAFkB;AAGlCQ,iBAAa,EAAE7f,gFAHmB;AAIlC+f,gBAAY,EAAEjgB,qEAJoB;AAKlCkgB,kBAAc,EAAE,eALkB;AAMlCC,aAAS,EAAE,aANuB;AAOlC2E,oBAAgB,EAAE,EAPgB;AAQlC1E,cAAU,EAAE;AARsB,GAAd,CA/hDH;AAyiDrB+M,sBAAoB,EAAE7N,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,uFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,eALgB;AAMhCC,aAAS,EAAE,aANqB;AAOhC2E,oBAAgB,EAAE,EAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd,CAziDD;AAmjDrBgN,yBAAuB,EAAE9N,iDAAA,CAAc;AACnChf,YAAQ,EAAEP,2EADyB;AAEnC8f,kBAAc,EAAEN,uFAFmB;AAGnCQ,iBAAa,EAAE7f,gFAHoB;AAInC+f,gBAAY,EAAEjgB,qEAJqB;AAKnCkgB,kBAAc,EAAE,eALmB;AAMnCC,aAAS,EAAE,aANwB;AAOnC2E,oBAAgB,EAAE,EAPiB;AAQnC1E,cAAU,EAAE;AARuB,GAAd,CAnjDJ;AA6jDrBiN,uBAAqB,EAAE/N,iDAAA,CAAc;AACjChf,YAAQ,EAAEP,yEADuB;AAEjC8f,kBAAc,EAAEN,uFAFiB;AAGjCQ,iBAAa,EAAE7f,gFAHkB;AAIjC+f,gBAAY,EAAEjgB,qEAJmB;AAKjCkgB,kBAAc,EAAE,eALiB;AAMjCC,aAAS,EAAE,aANsB;AAOjC2E,oBAAgB,EAAE,EAPe;AAQjC1E,cAAU,EAAE;AARqB,GAAd,CA7jDF;AAukDrBkN,sBAAoB,EAAEhO,iDAAA,CAAc;AAChChf,YAAQ,EAAEP,wEADsB;AAEhC8f,kBAAc,EAAEN,uFAFgB;AAGhCQ,iBAAa,EAAE7f,gFAHiB;AAIhC+f,gBAAY,EAAEjgB,qEAJkB;AAKhCkgB,kBAAc,EAAE,eALgB;AAMhCC,aAAS,EAAE,eANqB;AAOhC2E,oBAAgB,EAAE,EAPc;AAQhC1E,cAAU,EAAE;AARoB,GAAd;AAvkDD,CAAV;AAklDRV,kBAAS;AACZC,4BAA0B,EAAED,QAAQ,CAAC6N,OAAT,CAAiB5N,0BADjC;AAEZU,0BAAwB,EAAEX,QAAQ,CAAC6N,OAAT,CAAiBlN,wBAF/B;AAGZE,0BAAwB,EAAEb,QAAQ,CAAC6N,OAAT,CAAiBhN,wBAH/B;AAIZE,4BAA0B,EAAEf,QAAQ,CAAC6N,OAAT,CAAiB9M,0BAJjC;AAKZE,4BAA0B,EAAEjB,QAAQ,CAAC6N,OAAT,CAAiB5M,0BALjC;AAMZC,4BAA0B,EAAElB,QAAQ,CAAC6N,OAAT,CAAiB3M,0BANjC;AAOZC,kCAAgC,EAAEnB,QAAQ,CAAC6N,OAAT,CAAiB1M,gCAPvC;AAQZG,mCAAiC,EAAEtB,QAAQ,CAAC6N,OAAT,CAAiBvM,iCARxC;AASZC,kCAAgC,EAAEvB,QAAQ,CAAC6N,OAAT,CAAiBtM,gCATvC;AAUZC,0BAAwB,EAAExB,QAAQ,CAAC6N,OAAT,CAAiBrM,wBAV/B;AAWZG,0BAAwB,EAAE3B,QAAQ,CAAC6N,OAAT,CAAiBlM,wBAX/B;AAYZC,0BAAwB,EAAE5B,QAAQ,CAAC6N,OAAT,CAAiBjM,wBAZ/B;AAaZC,2BAAyB,EAAE7B,QAAQ,CAAC6N,OAAT,CAAiBhM,yBAbhC;AAcZE,2BAAyB,EAAE/B,QAAQ,CAAC6N,OAAT,CAAiB9L,yBAdhC;AAeZC,2BAAyB,EAAEhC,QAAQ,CAAC6N,OAAT,CAAiB7L,yBAfhC;AAgBZC,0BAAwB,EAAEjC,QAAQ,CAAC6N,OAAT,CAAiB5L,wBAhB/B;AAiBZG,0BAAwB,EAAEpC,QAAQ,CAAC6N,OAAT,CAAiBzL,wBAjB/B;AAkBZC,4BAA0B,EAAErC,QAAQ,CAAC6N,OAAT,CAAiBxL,0BAlBjC;AAmBZC,0BAAwB,EAAEtC,QAAQ,CAAC6N,OAAT,CAAiBvL,wBAnB/B;AAoBZC,0BAAwB,EAAEvC,QAAQ,CAAC6N,OAAT,CAAiBtL,wBApB/B;AAqBZE,0BAAwB,EAAEzC,QAAQ,CAAC6N,OAAT,CAAiBpL,wBArB/B;AAsBZC,4BAA0B,EAAE1C,QAAQ,CAAC6N,OAAT,CAAiBnL,0BAtBjC;AAuBZC,0BAAwB,EAAE3C,QAAQ,CAAC6N,OAAT,CAAiBlL,wBAvB/B;AAwBZC,0BAAwB,EAAE5C,QAAQ,CAAC6N,OAAT,CAAiBjL,wBAxB/B;AAyBZE,0BAAwB,EAAE9C,QAAQ,CAAC6N,OAAT,CAAiB/K,wBAzB/B;AA0BZC,4BAA0B,EAAE/C,QAAQ,CAAC6N,OAAT,CAAiB9K,0BA1BjC;AA2BZC,0BAAwB,EAAEhD,QAAQ,CAAC6N,OAAT,CAAiB7K,wBA3B/B;AA4BZC,0BAAwB,EAAEjD,QAAQ,CAAC6N,OAAT,CAAiB5K,wBA5B/B;AA6BZE,0BAAwB,EAAEnD,QAAQ,CAAC6N,OAAT,CAAiB1K,wBA7B/B;AA8BZC,0BAAwB,EAAEpD,QAAQ,CAAC6N,OAAT,CAAiBzK,wBA9B/B;AA+BZE,0BAAwB,EAAEtD,QAAQ,CAAC6N,OAAT,CAAiBvK,wBA/B/B;AAgCZC,4BAA0B,EAAEvD,QAAQ,CAAC6N,OAAT,CAAiBtK,0BAhCjC;AAiCZG,4BAA0B,EAAE1D,QAAQ,CAAC6N,OAAT,CAAiBnK,0BAjCjC;AAkCZE,4BAA0B,EAAE5D,QAAQ,CAAC6N,OAAT,CAAiBjK,0BAlCjC;AAmCZE,0BAAwB,EAAE9D,QAAQ,CAAC6N,OAAT,CAAiB/J,wBAnC/B;AAoCZG,0BAAwB,EAAEjE,QAAQ,CAAC6N,OAAT,CAAiB5J,wBApC/B;AAqCZG,0BAAwB,EAAEpE,QAAQ,CAAC6N,OAAT,CAAiBzJ,wBArC/B;AAsCZC,0BAAwB,EAAErE,QAAQ,CAAC6N,OAAT,CAAiBxJ,wBAtC/B;AAuCZE,0BAAwB,EAAEvE,QAAQ,CAAC6N,OAAT,CAAiBtJ,wBAvC/B;AAwCZE,0BAAwB,EAAEzE,QAAQ,CAAC6N,OAAT,CAAiBpJ,wBAxC/B;AAyCZE,4BAA0B,EAAE3E,QAAQ,CAAC6N,OAAT,CAAiBlJ,0BAzCjC;AA2CZmJ,UAAQ,EAAE9N,QAAQ,CAAC6N,OAAT,CAAiB5N,0BA3Cf;AA4CZ8N,QAAM,EAAE/N,QAAQ,CAAC6N,OAAT,CAAiBlN,wBA5Cb;AA6CZqN,QAAM,EAAEhO,QAAQ,CAAC6N,OAAT,CAAiBhN,wBA7Cb;AA8CZoN,gBAAc,EAAEjO,QAAQ,CAAC6N,OAAT,CAAiB1M,gCA9CrB;AA+CZ+M,iBAAe,EAAElO,QAAQ,CAAC6N,OAAT,CAAiBvM,iCA/CtB;AAgDZ6M,gBAAc,EAAEnO,QAAQ,CAAC6N,OAAT,CAAiBtM,gCAhDrB;AAiDZ6M,QAAM,EAAEpO,QAAQ,CAAC6N,OAAT,CAAiBrM,wBAjDb;AAkDZ6M,QAAM,EAAErO,QAAQ,CAAC6N,OAAT,CAAiBlM,wBAlDb;AAmDZ2M,QAAM,EAAEtO,QAAQ,CAAC6N,OAAT,CAAiBjM,wBAnDb;AAoDZ2M,SAAO,EAAEvO,QAAQ,CAAC6N,OAAT,CAAiBhM,yBApDd;AAqDZ2M,SAAO,EAAExO,QAAQ,CAAC6N,OAAT,CAAiB9L,yBArDd;AAsDZ0M,SAAO,EAAEzO,QAAQ,CAAC6N,OAAT,CAAiB7L,yBAtDd;AAuDZ0M,QAAM,EAAE1O,QAAQ,CAAC6N,OAAT,CAAiB5L,wBAvDb;AAwDZ0M,QAAM,EAAE3O,QAAQ,CAAC6N,OAAT,CAAiBzL,wBAxDb;AAyDZwM,UAAQ,EAAE5O,QAAQ,CAAC6N,OAAT,CAAiBxL,0BAzDf;AA0DZwM,QAAM,EAAE7O,QAAQ,CAAC6N,OAAT,CAAiBvL,wBA1Db;AA2DZwM,QAAM,EAAE9O,QAAQ,CAAC6N,OAAT,CAAiBtL,wBA3Db;AA4DZwM,QAAM,EAAE/O,QAAQ,CAAC6N,OAAT,CAAiBpL,wBA5Db;AA6DZuM,UAAQ,EAAEhP,QAAQ,CAAC6N,OAAT,CAAiBnL,0BA7Df;AA8DZuM,QAAM,EAAEjP,QAAQ,CAAC6N,OAAT,CAAiBlL,wBA9Db;AA+DZuM,QAAM,EAAElP,QAAQ,CAAC6N,OAAT,CAAiBjL,wBA/Db;AAgEZuM,QAAM,EAAEnP,QAAQ,CAAC6N,OAAT,CAAiB/K,wBAhEb;AAiEZsM,UAAQ,EAAEpP,QAAQ,CAAC6N,OAAT,CAAiB9K,0BAjEf;AAkEZsM,QAAM,EAAErP,QAAQ,CAAC6N,OAAT,CAAiB7K,wBAlEb;AAmEZsM,QAAM,EAAEtP,QAAQ,CAAC6N,OAAT,CAAiB5K,wBAnEb;AAoEZsM,QAAM,EAAEvP,QAAQ,CAAC6N,OAAT,CAAiB1K,wBApEb;AAqEZqM,QAAM,EAAExP,QAAQ,CAAC6N,OAAT,CAAiBzK,wBArEb;AAsEZqM,QAAM,EAAEzP,QAAQ,CAAC6N,OAAT,CAAiBvK,wBAtEb;AAuEZoM,UAAQ,EAAE1P,QAAQ,CAAC6N,OAAT,CAAiBtK,0BAvEf;AAwEZoM,UAAQ,EAAE3P,QAAQ,CAAC6N,OAAT,CAAiBnK,0BAxEf;AAyEZkM,UAAQ,EAAE5P,QAAQ,CAAC6N,OAAT,CAAiBjK,0BAzEf;AA0EZiM,QAAM,EAAE7P,QAAQ,CAAC6N,OAAT,CAAiB/J,wBA1Eb;AA2EZgM,QAAM,EAAE9P,QAAQ,CAAC6N,OAAT,CAAiB5J,wBA3Eb;AA4EZ8L,QAAM,EAAE/P,QAAQ,CAAC6N,OAAT,CAAiBzJ,wBA5Eb;AA6EZ4L,QAAM,EAAEhQ,QAAQ,CAAC6N,OAAT,CAAiBxJ,wBA7Eb;AA8EZ4L,QAAM,EAAEjQ,QAAQ,CAAC6N,OAAT,CAAiBtJ,wBA9Eb;AA+EZ2L,QAAM,EAAElQ,QAAQ,CAAC6N,OAAT,CAAiBpJ,wBA/Eb;AAgFZ0L,UAAQ,EAAEnQ,QAAQ,CAAC6N,OAAT,CAAiBlJ,0BAhFf;AAkFZhW,kBAAgB,EAAEqR,QAAQ,CAAC6N,OAAT,CAAiBlf,gBAlFvB;AAmFZE,sBAAoB,EAAEmR,QAAQ,CAAC6N,OAAT,CAAiBhf,oBAnF3B;AAoFZC,qBAAmB,EAAEkR,QAAQ,CAAC6N,OAAT,CAAiB/e,mBApF1B;AAqFZE,yBAAuB,EAAEgR,QAAQ,CAAC6N,OAAT,CAAiB7e,uBArF9B;AAsFZC,mBAAiB,EAAE+Q,QAAQ,CAAC6N,OAAT,CAAiB5e,iBAtFxB;AAuFZE,uBAAqB,EAAE6Q,QAAQ,CAAC6N,OAAT,CAAiB1e,qBAvF5B;AAyFZ8V,qBAAmB,EAAEjF,QAAQ,CAAC6N,OAAT,CAAiB5I,mBAzF1B;AA0FZI,sBAAoB,EAAErF,QAAQ,CAAC6N,OAAT,CAAiBxI,oBA1F3B;AA2FZC,yBAAuB,EAAEtF,QAAQ,CAAC6N,OAAT,CAAiBvI,uBA3F9B;AA4FZC,sBAAoB,EAAEvF,QAAQ,CAAC6N,OAAT,CAAiBtI,oBA5F3B;AA6FZC,oBAAkB,EAAExF,QAAQ,CAAC6N,OAAT,CAAiBrI,kBA7FzB;AA8FZC,sBAAoB,EAAEzF,QAAQ,CAAC6N,OAAT,CAAiBpI,oBA9F3B;AA+FZC,sBAAoB,EAAE1F,QAAQ,CAAC6N,OAAT,CAAiBnI,oBA/F3B;AAgGZC,qBAAmB,EAAE3F,QAAQ,CAAC6N,OAAT,CAAiBlI,mBAhG1B;AAiGZC,uBAAqB,EAAE5F,QAAQ,CAAC6N,OAAT,CAAiBjI,qBAjG5B;AAkGZC,uBAAqB,EAAE7F,QAAQ,CAAC6N,OAAT,CAAiBhI,qBAlG5B;AAmGZC,qBAAmB,EAAE9F,QAAQ,CAAC6N,OAAT,CAAiB/H,mBAnG1B;AAoGZC,qBAAmB,EAAE/F,QAAQ,CAAC6N,OAAT,CAAiB9H,mBApG1B;AAqGZC,qBAAmB,EAAEhG,QAAQ,CAAC6N,OAAT,CAAiB7H,mBArG1B;AAsGZC,qBAAmB,EAAEjG,QAAQ,CAAC6N,OAAT,CAAiB5H,mBAtG1B;AAuGZC,wBAAsB,EAAElG,QAAQ,CAAC6N,OAAT,CAAiB3H,sBAvG7B;AAwGZC,sBAAoB,EAAEnG,QAAQ,CAAC6N,OAAT,CAAiB1H,oBAxG3B;AAyGZC,sBAAoB,EAAEpG,QAAQ,CAAC6N,OAAT,CAAiBzH,oBAzG3B;AA0GZC,sBAAoB,EAAErG,QAAQ,CAAC6N,OAAT,CAAiBxH,oBA1G3B;AA2GZC,uBAAqB,EAAEtG,QAAQ,CAAC6N,OAAT,CAAiBvH,qBA3G5B;AA4GZC,qBAAmB,EAAEvG,QAAQ,CAAC6N,OAAT,CAAiBtH,mBA5G1B;AA6GZC,qBAAmB,EAAExG,QAAQ,CAAC6N,OAAT,CAAiBrH,mBA7G1B;AA8GZC,yBAAuB,EAAEzG,QAAQ,CAAC6N,OAAT,CAAiBpH,uBA9G9B;AA+GZC,iCAA+B,EAAE1G,QAAQ,CAAC6N,OAAT,CAAiBnH,+BA/GtC;AAgHZC,cAAY,EAAE3G,QAAQ,CAAC6N,OAAT,CAAiBlH,YAhHnB;AAiHZE,uBAAqB,EAAE7G,QAAQ,CAAC6N,OAAT,CAAiBhH,qBAjH5B;AAkHZC,qBAAmB,EAAE9G,QAAQ,CAAC6N,OAAT,CAAiB/G,mBAlH1B;AAmHZC,sBAAoB,EAAE/G,QAAQ,CAAC6N,OAAT,CAAiB9G,oBAnH3B;AAoHZC,wBAAsB,EAAEhH,QAAQ,CAAC6N,OAAT,CAAiB7G,sBApH7B;AAqHZC,qBAAmB,EAAEjH,QAAQ,CAAC6N,OAAT,CAAiB5G,mBArH1B;AAsHZC,cAAY,EAAElH,QAAQ,CAAC6N,OAAT,CAAiB3G,YAtHnB;AAuHZE,cAAY,EAAEpH,QAAQ,CAAC6N,OAAT,CAAiBzG,YAvHnB;AAwHZE,qBAAmB,EAAEtH,QAAQ,CAAC6N,OAAT,CAAiBvG,mBAxH1B;AAyHZG,sBAAoB,EAAEzH,QAAQ,CAAC6N,OAAT,CAAiBpG,oBAzH3B;AA0HZC,yBAAuB,EAAE1H,QAAQ,CAAC6N,OAAT,CAAiBnG,uBA1H9B;AA2HZC,sBAAoB,EAAE3H,QAAQ,CAAC6N,OAAT,CAAiBlG,oBA3H3B;AA4HZC,oBAAkB,EAAE5H,QAAQ,CAAC6N,OAAT,CAAiBjG,kBA5HzB;AA6HZC,sBAAoB,EAAE7H,QAAQ,CAAC6N,OAAT,CAAiBhG,oBA7H3B;AA8HZC,sBAAoB,EAAE9H,QAAQ,CAAC6N,OAAT,CAAiB/F,oBA9H3B;AA+HZC,qBAAmB,EAAE/H,QAAQ,CAAC6N,OAAT,CAAiB9F,mBA/H1B;AAgIZC,uBAAqB,EAAEhI,QAAQ,CAAC6N,OAAT,CAAiB7F,qBAhI5B;AAiIZC,uBAAqB,EAAEjI,QAAQ,CAAC6N,OAAT,CAAiB5F,qBAjI5B;AAkIZC,qBAAmB,EAAElI,QAAQ,CAAC6N,OAAT,CAAiB3F,mBAlI1B;AAmIZC,qBAAmB,EAAEnI,QAAQ,CAAC6N,OAAT,CAAiB1F,mBAnI1B;AAoIZC,qBAAmB,EAAEpI,QAAQ,CAAC6N,OAAT,CAAiBzF,mBApI1B;AAqIZC,qBAAmB,EAAErI,QAAQ,CAAC6N,OAAT,CAAiBxF,mBArI1B;AAsIZC,wBAAsB,EAAEtI,QAAQ,CAAC6N,OAAT,CAAiBvF,sBAtI7B;AAuIZC,sBAAoB,EAAEvI,QAAQ,CAAC6N,OAAT,CAAiBtF,oBAvI3B;AAwIZC,sBAAoB,EAAExI,QAAQ,CAAC6N,OAAT,CAAiBrF,oBAxI3B;AAyIZC,sBAAoB,EAAEzI,QAAQ,CAAC6N,OAAT,CAAiBpF,oBAzI3B;AA0IZC,uBAAqB,EAAE1I,QAAQ,CAAC6N,OAAT,CAAiBnF,qBA1I5B;AA2IZC,qBAAmB,EAAE3I,QAAQ,CAAC6N,OAAT,CAAiBlF,mBA3I1B;AA4IZC,qBAAmB,EAAE5I,QAAQ,CAAC6N,OAAT,CAAiBjF,mBA5I1B;AA6IZC,yBAAuB,EAAE7I,QAAQ,CAAC6N,OAAT,CAAiBhF,uBA7I9B;AA8IZC,cAAY,EAAE9I,QAAQ,CAAC6N,OAAT,CAAiB/E,YA9InB;AA+IZE,uBAAqB,EAAEhJ,QAAQ,CAAC6N,OAAT,CAAiB7E,qBA/I5B;AAgJZC,qBAAmB,EAAEjJ,QAAQ,CAAC6N,OAAT,CAAiB5E,mBAhJ1B;AAiJZC,sBAAoB,EAAElJ,QAAQ,CAAC6N,OAAT,CAAiB3E,oBAjJ3B;AAkJZC,wBAAsB,EAAEnJ,QAAQ,CAAC6N,OAAT,CAAiB1E,sBAlJ7B;AAmJZC,qBAAmB,EAAEpJ,QAAQ,CAAC6N,OAAT,CAAiBzE,mBAnJ1B;AAoJZC,cAAY,EAAErJ,QAAQ,CAAC6N,OAAT,CAAiBxE,YApJnB;AAqJZE,cAAY,EAAEvJ,QAAQ,CAAC6N,OAAT,CAAiBtE,YArJnB;AAsJZC,qBAAmB,EAAExJ,QAAQ,CAAC6N,OAAT,CAAiBrE,mBAtJ1B;AAuJZG,sBAAoB,EAAE3J,QAAQ,CAAC6N,OAAT,CAAiBlE,oBAvJ3B;AAwJZC,yBAAuB,EAAE5J,QAAQ,CAAC6N,OAAT,CAAiBjE,uBAxJ9B;AAyJZC,sBAAoB,EAAE7J,QAAQ,CAAC6N,OAAT,CAAiBhE,oBAzJ3B;AA0JZC,oBAAkB,EAAE9J,QAAQ,CAAC6N,OAAT,CAAiB/D,kBA1JzB;AA2JZC,sBAAoB,EAAE/J,QAAQ,CAAC6N,OAAT,CAAiB9D,oBA3J3B;AA4JZC,sBAAoB,EAAEhK,QAAQ,CAAC6N,OAAT,CAAiB7D,oBA5J3B;AA6JZC,qBAAmB,EAAEjK,QAAQ,CAAC6N,OAAT,CAAiB5D,mBA7J1B;AA8JZC,uBAAqB,EAAElK,QAAQ,CAAC6N,OAAT,CAAiB3D,qBA9J5B;AA+JZC,uBAAqB,EAAEnK,QAAQ,CAAC6N,OAAT,CAAiB1D,qBA/J5B;AAgKZC,qBAAmB,EAAEpK,QAAQ,CAAC6N,OAAT,CAAiBzD,mBAhK1B;AAiKZC,qBAAmB,EAAErK,QAAQ,CAAC6N,OAAT,CAAiBxD,mBAjK1B;AAkKZC,qBAAmB,EAAEtK,QAAQ,CAAC6N,OAAT,CAAiBvD,mBAlK1B;AAmKZC,qBAAmB,EAAEvK,QAAQ,CAAC6N,OAAT,CAAiBtD,mBAnK1B;AAoKZC,wBAAsB,EAAExK,QAAQ,CAAC6N,OAAT,CAAiBrD,sBApK7B;AAqKZC,sBAAoB,EAAEzK,QAAQ,CAAC6N,OAAT,CAAiBpD,oBArK3B;AAsKZC,sBAAoB,EAAE1K,QAAQ,CAAC6N,OAAT,CAAiBnD,oBAtK3B;AAuKZC,sBAAoB,EAAE3K,QAAQ,CAAC6N,OAAT,CAAiBlD,oBAvK3B;AAwKZC,uBAAqB,EAAE5K,QAAQ,CAAC6N,OAAT,CAAiBjD,qBAxK5B;AAyKZC,qBAAmB,EAAE7K,QAAQ,CAAC6N,OAAT,CAAiBhD,mBAzK1B;AA0KZC,qBAAmB,EAAE9K,QAAQ,CAAC6N,OAAT,CAAiB/C,mBA1K1B;AA2KZC,yBAAuB,EAAE/K,QAAQ,CAAC6N,OAAT,CAAiB9C,uBA3K9B;AA4KZC,qBAAmB,EAAEhL,QAAQ,CAAC6N,OAAT,CAAiB7C,mBA5K1B;AA6KZE,uBAAqB,EAAElL,QAAQ,CAAC6N,OAAT,CAAiB3C,qBA7K5B;AA8KZC,wBAAsB,EAAEnL,QAAQ,CAAC6N,OAAT,CAAiB1C,sBA9K7B;AA+KZC,cAAY,EAAEpL,QAAQ,CAAC6N,OAAT,CAAiBzC,YA/KnB;AAgLZE,cAAY,EAAEtL,QAAQ,CAAC6N,OAAT,CAAiBvC,YAhLnB;AAiLZC,cAAY,EAAEvL,QAAQ,CAAC6N,OAAT,CAAiBtC,YAjLnB;AAkLZG,cAAY,EAAE1L,QAAQ,CAAC6N,OAAT,CAAiBnC,YAlLnB;AAmLZE,cAAY,EAAE5L,QAAQ,CAAC6N,OAAT,CAAiBjC,YAnLnB;AAoLZE,sBAAoB,EAAE9L,QAAQ,CAAC6N,OAAT,CAAiB/B,oBApL3B;AAqLZG,uBAAqB,EAAEjM,QAAQ,CAAC6N,OAAT,CAAiB5B,qBArL5B;AAsLZC,0BAAwB,EAAElM,QAAQ,CAAC6N,OAAT,CAAiB3B,wBAtL/B;AAuLZC,uBAAqB,EAAEnM,QAAQ,CAAC6N,OAAT,CAAiB1B,qBAvL5B;AAwLZC,uBAAqB,EAAEpM,QAAQ,CAAC6N,OAAT,CAAiBzB,qBAxL5B;AAyLZC,sBAAoB,EAAErM,QAAQ,CAAC6N,OAAT,CAAiBxB,oBAzL3B;AA0LZC,wBAAsB,EAAEtM,QAAQ,CAAC6N,OAAT,CAAiBvB,sBA1L7B;AA2LZC,wBAAsB,EAAEvM,QAAQ,CAAC6N,OAAT,CAAiBtB,sBA3L7B;AA4LZC,sBAAoB,EAAExM,QAAQ,CAAC6N,OAAT,CAAiBrB,oBA5L3B;AA6LZC,sBAAoB,EAAEzM,QAAQ,CAAC6N,OAAT,CAAiBpB,oBA7L3B;AA8LZC,sBAAoB,EAAE1M,QAAQ,CAAC6N,OAAT,CAAiBnB,oBA9L3B;AA+LZC,sBAAoB,EAAE3M,QAAQ,CAAC6N,OAAT,CAAiBlB,oBA/L3B;AAgMZC,yBAAuB,EAAE5M,QAAQ,CAAC6N,OAAT,CAAiBjB,uBAhM9B;AAiMZC,uBAAqB,EAAE7M,QAAQ,CAAC6N,OAAT,CAAiBhB,qBAjM5B;AAkMZC,wBAAsB,EAAE9M,QAAQ,CAAC6N,OAAT,CAAiBf,sBAlM7B;AAmMZC,uBAAqB,EAAE/M,QAAQ,CAAC6N,OAAT,CAAiBd,qBAnM5B;AAoMZC,uBAAqB,EAAEhN,QAAQ,CAAC6N,OAAT,CAAiBb,qBApM5B;AAqMZC,qBAAmB,EAAEjN,QAAQ,CAAC6N,OAAT,CAAiBZ,mBArM1B;AAsMZC,uBAAqB,EAAElN,QAAQ,CAAC6N,OAAT,CAAiBX,qBAtM5B;AAuMZC,sBAAoB,EAAEnN,QAAQ,CAAC6N,OAAT,CAAiBV,oBAvM3B;AAwMZC,sBAAoB,EAAEpN,QAAQ,CAAC6N,OAAT,CAAiBT,oBAxM3B;AAyMZC,0BAAwB,EAAErN,QAAQ,CAAC6N,OAAT,CAAiBR,wBAzM/B;AA0MZC,eAAa,EAAEtN,QAAQ,CAAC6N,OAAT,CAAiBP,aA1MpB;AA2MZE,wBAAsB,EAAExN,QAAQ,CAAC6N,OAAT,CAAiBL,sBA3M7B;AA4MZC,sBAAoB,EAAEzN,QAAQ,CAAC6N,OAAT,CAAiBJ,oBA5M3B;AA6MZC,yBAAuB,EAAE1N,QAAQ,CAAC6N,OAAT,CAAiBH,uBA7M9B;AA8MZC,uBAAqB,EAAE3N,QAAQ,CAAC6N,OAAT,CAAiBF,qBA9M5B;AA+MZC,sBAAoB,EAAE5N,QAAQ,CAAC6N,OAAT,CAAiBD,oBA/M3B;AAiNZwC,YAAU,EAAEpQ,QAAQ,CAAC6N,OAAT,CAAiB5I,mBAjNjB;AAkNZoL,aAAW,EAAErQ,QAAQ,CAAC6N,OAAT,CAAiBxI,oBAlNlB;AAmNZiL,gBAAc,EAAEtQ,QAAQ,CAAC6N,OAAT,CAAiBvI,uBAnNrB;AAoNZiL,aAAW,EAAEvQ,QAAQ,CAAC6N,OAAT,CAAiBtI,oBApNlB;AAqNZiL,WAAS,EAAExQ,QAAQ,CAAC6N,OAAT,CAAiBrI,kBArNhB;AAsNZiL,aAAW,EAAEzQ,QAAQ,CAAC6N,OAAT,CAAiBpI,oBAtNlB;AAuNZiL,aAAW,EAAE1Q,QAAQ,CAAC6N,OAAT,CAAiBnI,oBAvNlB;AAwNZiL,YAAU,EAAE3Q,QAAQ,CAAC6N,OAAT,CAAiBlI,mBAxNjB;AAyNZiL,cAAY,EAAE5Q,QAAQ,CAAC6N,OAAT,CAAiBjI,qBAzNnB;AA0NZiL,cAAY,EAAE7Q,QAAQ,CAAC6N,OAAT,CAAiBhI,qBA1NnB;AA2NZiL,YAAU,EAAE9Q,QAAQ,CAAC6N,OAAT,CAAiB/H,mBA3NjB;AA4NZiL,YAAU,EAAE/Q,QAAQ,CAAC6N,OAAT,CAAiB9H,mBA5NjB;AA6NZiL,YAAU,EAAEhR,QAAQ,CAAC6N,OAAT,CAAiB7H,mBA7NjB;AA8NZiL,YAAU,EAAEjR,QAAQ,CAAC6N,OAAT,CAAiB5H,mBA9NjB;AA+NZiL,eAAa,EAAElR,QAAQ,CAAC6N,OAAT,CAAiB3H,sBA/NpB;AAgOZiL,aAAW,EAAEnR,QAAQ,CAAC6N,OAAT,CAAiB1H,oBAhOlB;AAiOZiL,aAAW,EAAEpR,QAAQ,CAAC6N,OAAT,CAAiBzH,oBAjOlB;AAkOZiL,aAAW,EAAErR,QAAQ,CAAC6N,OAAT,CAAiBxH,oBAlOlB;AAmOZiL,cAAY,EAAEtR,QAAQ,CAAC6N,OAAT,CAAiBvH,qBAnOnB;AAoOZiL,YAAU,EAAEvR,QAAQ,CAAC6N,OAAT,CAAiBtH,mBApOjB;AAqOZiL,YAAU,EAAExR,QAAQ,CAAC6N,OAAT,CAAiBrH,mBArOjB;AAsOZiL,gBAAc,EAAEzR,QAAQ,CAAC6N,OAAT,CAAiBpH,uBAtOrB;AAuOZiL,wBAAsB,EAAE1R,QAAQ,CAAC6N,OAAT,CAAiBnH,+BAvO7B;AAwOZiL,KAAG,EAAE3R,QAAQ,CAAC6N,OAAT,CAAiBlH,YAxOV;AAyOZiL,cAAY,EAAE5R,QAAQ,CAAC6N,OAAT,CAAiBhH,qBAzOnB;AA0OZgL,YAAU,EAAE7R,QAAQ,CAAC6N,OAAT,CAAiB/G,mBA1OjB;AA2OZgL,aAAW,EAAE9R,QAAQ,CAAC6N,OAAT,CAAiB9G,oBA3OlB;AA4OZgL,eAAa,EAAE/R,QAAQ,CAAC6N,OAAT,CAAiB7G,sBA5OpB;AA6OZgL,YAAU,EAAEhS,QAAQ,CAAC6N,OAAT,CAAiB5G,mBA7OjB;AA8OZgL,KAAG,EAAEjS,QAAQ,CAAC6N,OAAT,CAAiB3G,YA9OV;AA+OZgL,KAAG,EAAElS,QAAQ,CAAC6N,OAAT,CAAiBzG,YA/OV;AAgPZ+K,YAAU,EAAEnS,QAAQ,CAAC6N,OAAT,CAAiBvG,mBAhPjB;AAiPZ8K,aAAW,EAAEpS,QAAQ,CAAC6N,OAAT,CAAiBpG,oBAjPlB;AAkPZ4K,gBAAc,EAAErS,QAAQ,CAAC6N,OAAT,CAAiBnG,uBAlPrB;AAmPZ4K,aAAW,EAAEtS,QAAQ,CAAC6N,OAAT,CAAiBlG,oBAnPlB;AAoPZ4K,WAAS,EAAEvS,QAAQ,CAAC6N,OAAT,CAAiBjG,kBApPhB;AAqPZ4K,aAAW,EAAExS,QAAQ,CAAC6N,OAAT,CAAiBhG,oBArPlB;AAsPZ4K,aAAW,EAAEzS,QAAQ,CAAC6N,OAAT,CAAiB/F,oBAtPlB;AAuPZ4K,YAAU,EAAE1S,QAAQ,CAAC6N,OAAT,CAAiB9F,mBAvPjB;AAwPZ4K,cAAY,EAAE3S,QAAQ,CAAC6N,OAAT,CAAiB7F,qBAxPnB;AAyPZ4K,cAAY,EAAE5S,QAAQ,CAAC6N,OAAT,CAAiB5F,qBAzPnB;AA0PZ4K,YAAU,EAAE7S,QAAQ,CAAC6N,OAAT,CAAiB3F,mBA1PjB;AA2PZ4K,YAAU,EAAE9S,QAAQ,CAAC6N,OAAT,CAAiB1F,mBA3PjB;AA4PZ4K,YAAU,EAAE/S,QAAQ,CAAC6N,OAAT,CAAiBzF,mBA5PjB;AA6PZ4K,YAAU,EAAEhT,QAAQ,CAAC6N,OAAT,CAAiBxF,mBA7PjB;AA8PZ4K,eAAa,EAAEjT,QAAQ,CAAC6N,OAAT,CAAiBvF,sBA9PpB;AA+PZ4K,aAAW,EAAElT,QAAQ,CAAC6N,OAAT,CAAiBtF,oBA/PlB;AAgQZ4K,aAAW,EAAEnT,QAAQ,CAAC6N,OAAT,CAAiBrF,oBAhQlB;AAiQZ4K,aAAW,EAAEpT,QAAQ,CAAC6N,OAAT,CAAiBpF,oBAjQlB;AAkQZ4K,cAAY,EAAErT,QAAQ,CAAC6N,OAAT,CAAiBnF,qBAlQnB;AAmQZ4K,YAAU,EAAEtT,QAAQ,CAAC6N,OAAT,CAAiBlF,mBAnQjB;AAoQZ4K,YAAU,EAAEvT,QAAQ,CAAC6N,OAAT,CAAiBjF,mBApQjB;AAqQZ4K,gBAAc,EAAExT,QAAQ,CAAC6N,OAAT,CAAiBhF,uBArQrB;AAsQZ4K,KAAG,EAAEzT,QAAQ,CAAC6N,OAAT,CAAiB/E,YAtQV;AAuQZ4K,cAAY,EAAE1T,QAAQ,CAAC6N,OAAT,CAAiB7E,qBAvQnB;AAwQZ2K,YAAU,EAAE3T,QAAQ,CAAC6N,OAAT,CAAiB5E,mBAxQjB;AAyQZ2K,aAAW,EAAE5T,QAAQ,CAAC6N,OAAT,CAAiB3E,oBAzQlB;AA0QZ2K,eAAa,EAAE7T,QAAQ,CAAC6N,OAAT,CAAiB1E,sBA1QpB;AA2QZ2K,YAAU,EAAE9T,QAAQ,CAAC6N,OAAT,CAAiBzE,mBA3QjB;AA4QZ2K,KAAG,EAAE/T,QAAQ,CAAC6N,OAAT,CAAiBxE,YA5QV;AA6QZ2K,KAAG,EAAEhU,QAAQ,CAAC6N,OAAT,CAAiBtE,YA7QV;AA8QZ0K,YAAU,EAAEjU,QAAQ,CAAC6N,OAAT,CAAiBrE,mBA9QjB;AA+QZ0K,aAAW,EAAElU,QAAQ,CAAC6N,OAAT,CAAiBlE,oBA/QlB;AAgRZwK,gBAAc,EAAEnU,QAAQ,CAAC6N,OAAT,CAAiBjE,uBAhRrB;AAiRZwK,aAAW,EAAEpU,QAAQ,CAAC6N,OAAT,CAAiBhE,oBAjRlB;AAkRZwK,WAAS,EAAErU,QAAQ,CAAC6N,OAAT,CAAiB/D,kBAlRhB;AAmRZwK,aAAW,EAAEtU,QAAQ,CAAC6N,OAAT,CAAiB9D,oBAnRlB;AAoRZwK,aAAW,EAAEvU,QAAQ,CAAC6N,OAAT,CAAiB7D,oBApRlB;AAqRZwK,YAAU,EAAExU,QAAQ,CAAC6N,OAAT,CAAiB5D,mBArRjB;AAsRZwK,cAAY,EAAEzU,QAAQ,CAAC6N,OAAT,CAAiB3D,qBAtRnB;AAuRZwK,cAAY,EAAE1U,QAAQ,CAAC6N,OAAT,CAAiB1D,qBAvRnB;AAwRZwK,YAAU,EAAE3U,QAAQ,CAAC6N,OAAT,CAAiBzD,mBAxRjB;AAyRZwK,YAAU,EAAE5U,QAAQ,CAAC6N,OAAT,CAAiBxD,mBAzRjB;AA0RZwK,YAAU,EAAE7U,QAAQ,CAAC6N,OAAT,CAAiBvD,mBA1RjB;AA2RZwK,YAAU,EAAE9U,QAAQ,CAAC6N,OAAT,CAAiBtD,mBA3RjB;AA4RZwK,eAAa,EAAE/U,QAAQ,CAAC6N,OAAT,CAAiBrD,sBA5RpB;AA6RZwK,aAAW,EAAEhV,QAAQ,CAAC6N,OAAT,CAAiBpD,oBA7RlB;AA8RZwK,aAAW,EAAEjV,QAAQ,CAAC6N,OAAT,CAAiBnD,oBA9RlB;AA+RZwK,aAAW,EAAElV,QAAQ,CAAC6N,OAAT,CAAiBlD,oBA/RlB;AAgSZwK,cAAY,EAAEnV,QAAQ,CAAC6N,OAAT,CAAiBjD,qBAhSnB;AAiSZwK,YAAU,EAAEpV,QAAQ,CAAC6N,OAAT,CAAiBhD,mBAjSjB;AAkSZwK,YAAU,EAAErV,QAAQ,CAAC6N,OAAT,CAAiB/C,mBAlSjB;AAmSZwK,gBAAc,EAAEtV,QAAQ,CAAC6N,OAAT,CAAiB9C,uBAnSrB;AAoSZwK,YAAU,EAAEvV,QAAQ,CAAC6N,OAAT,CAAiB7C,mBApSjB;AAqSZwK,cAAY,EAAExV,QAAQ,CAAC6N,OAAT,CAAiB3C,qBArSnB;AAsSZuK,eAAa,EAAEzV,QAAQ,CAAC6N,OAAT,CAAiB1C,sBAtSpB;AAuSZuK,KAAG,EAAE1V,QAAQ,CAAC6N,OAAT,CAAiBzC,YAvSV;AAwSZuK,KAAG,EAAE3V,QAAQ,CAAC6N,OAAT,CAAiBvC,YAxSV;AAySZsK,KAAG,EAAE5V,QAAQ,CAAC6N,OAAT,CAAiBtC,YAzSV;AA0SZsK,KAAG,EAAE7V,QAAQ,CAAC6N,OAAT,CAAiBnC,YA1SV;AA2SZoK,KAAG,EAAE9V,QAAQ,CAAC6N,OAAT,CAAiBjC,YA3SV;AA4SZmK,aAAW,EAAE/V,QAAQ,CAAC6N,OAAT,CAAiB/B,oBA5SlB;AA6SZkK,cAAY,EAAEhW,QAAQ,CAAC6N,OAAT,CAAiB5B,qBA7SnB;AA8SZgK,iBAAe,EAAEjW,QAAQ,CAAC6N,OAAT,CAAiB3B,wBA9StB;AA+SZgK,cAAY,EAAElW,QAAQ,CAAC6N,OAAT,CAAiB1B,qBA/SnB;AAgTZgK,cAAY,EAAEnW,QAAQ,CAAC6N,OAAT,CAAiBzB,qBAhTnB;AAiTZgK,aAAW,EAAEpW,QAAQ,CAAC6N,OAAT,CAAiBxB,oBAjTlB;AAkTZgK,eAAa,EAAErW,QAAQ,CAAC6N,OAAT,CAAiBvB,sBAlTpB;AAmTZgK,eAAa,EAAEtW,QAAQ,CAAC6N,OAAT,CAAiBtB,sBAnTpB;AAoTZgK,aAAW,EAAEvW,QAAQ,CAAC6N,OAAT,CAAiBrB,oBApTlB;AAqTZgK,aAAW,EAAExW,QAAQ,CAAC6N,OAAT,CAAiBpB,oBArTlB;AAsTZgK,aAAW,EAAEzW,QAAQ,CAAC6N,OAAT,CAAiBnB,oBAtTlB;AAuTZgK,aAAW,EAAE1W,QAAQ,CAAC6N,OAAT,CAAiBlB,oBAvTlB;AAwTZgK,gBAAc,EAAE3W,QAAQ,CAAC6N,OAAT,CAAiBjB,uBAxTrB;AAyTZgK,cAAY,EAAE5W,QAAQ,CAAC6N,OAAT,CAAiBhB,qBAzTnB;AA0TZgK,eAAa,EAAE7W,QAAQ,CAAC6N,OAAT,CAAiBf,sBA1TpB;AA2TZgK,cAAY,EAAE9W,QAAQ,CAAC6N,OAAT,CAAiBd,qBA3TnB;AA4TZgK,cAAY,EAAE/W,QAAQ,CAAC6N,OAAT,CAAiBb,qBA5TnB;AA6TZgK,YAAU,EAAEhX,QAAQ,CAAC6N,OAAT,CAAiBZ,mBA7TjB;AA8TZgK,cAAY,EAAEjX,QAAQ,CAAC6N,OAAT,CAAiBX,qBA9TnB;AA+TZgK,aAAW,EAAElX,QAAQ,CAAC6N,OAAT,CAAiBV,oBA/TlB;AAgUZgK,aAAW,EAAEnX,QAAQ,CAAC6N,OAAT,CAAiBT,oBAhUlB;AAiUZgK,iBAAe,EAAEpX,QAAQ,CAAC6N,OAAT,CAAiBR,wBAjUtB;AAkUZgK,MAAI,EAAErX,QAAQ,CAAC6N,OAAT,CAAiBP,aAlUX;AAmUZgK,eAAa,EAAEtX,QAAQ,CAAC6N,OAAT,CAAiBL,sBAnUpB;AAoUZ+J,aAAW,EAAEvX,QAAQ,CAAC6N,OAAT,CAAiBJ,oBApUlB;AAqUZ+J,gBAAc,EAAExX,QAAQ,CAAC6N,OAAT,CAAiBH,uBArUrB;AAsUZ+J,cAAY,EAAEzX,QAAQ,CAAC6N,OAAT,CAAiBF,qBAtUnB;AAuUZ+J,aAAW,EAAE1X,QAAQ,CAAC6N,OAAT,CAAiBD;AAvUlB,CAAT;AAyUA5N,qBAAqB,CACxBA,QAAQ,CAAC2X,MAAT,CAAgB5W,0BADQ,EAExBf,QAAQ,CAAC2X,MAAT,CAAgB1W,0BAFQ,EAGxBjB,QAAQ,CAAC2X,MAAT,CAAgBzW,0BAHQ,EAIxBlB,QAAQ,CAAC2X,MAAT,CAAgB1X,0BAJQ,EAKxBD,QAAQ,CAAC2X,MAAT,CAAgBhX,wBALQ,EAMxBX,QAAQ,CAAC2X,MAAT,CAAgB9W,wBANQ,EAOxBb,QAAQ,CAAC2X,MAAT,CAAgBxW,gCAPQ,EAQxBnB,QAAQ,CAAC2X,MAAT,CAAgBrW,iCARQ,EASxBtB,QAAQ,CAAC2X,MAAT,CAAgBpW,gCATQ,EAUxBvB,QAAQ,CAAC2X,MAAT,CAAgBnW,wBAVQ,EAWxBxB,QAAQ,CAAC2X,MAAT,CAAgBhW,wBAXQ,EAYxB3B,QAAQ,CAAC2X,MAAT,CAAgB/V,wBAZQ,EAaxB5B,QAAQ,CAAC2X,MAAT,CAAgB9V,yBAbQ,EAcxB7B,QAAQ,CAAC2X,MAAT,CAAgB5V,yBAdQ,EAexB/B,QAAQ,CAAC2X,MAAT,CAAgB3V,yBAfQ,EAgBxBhC,QAAQ,CAAC2X,MAAT,CAAgB1V,wBAhBQ,EAiBxBjC,QAAQ,CAAC2X,MAAT,CAAgBvV,wBAjBQ,EAkBxBpC,QAAQ,CAAC2X,MAAT,CAAgBtV,0BAlBQ,EAmBxBrC,QAAQ,CAAC2X,MAAT,CAAgBrV,wBAnBQ,EAoBxBtC,QAAQ,CAAC2X,MAAT,CAAgBpV,wBApBQ,EAqBxBvC,QAAQ,CAAC2X,MAAT,CAAgBlV,wBArBQ,EAsBxBzC,QAAQ,CAAC2X,MAAT,CAAgBjV,0BAtBQ,EAuBxB1C,QAAQ,CAAC2X,MAAT,CAAgBhV,wBAvBQ,EAwBxB3C,QAAQ,CAAC2X,MAAT,CAAgB/U,wBAxBQ,EAyBxB5C,QAAQ,CAAC2X,MAAT,CAAgB7U,wBAzBQ,EA0BxB9C,QAAQ,CAAC2X,MAAT,CAAgB5U,0BA1BQ,EA2BxB/C,QAAQ,CAAC2X,MAAT,CAAgB3U,wBA3BQ,EA4BxBhD,QAAQ,CAAC2X,MAAT,CAAgB1U,wBA5BQ,EA6BxBjD,QAAQ,CAAC2X,MAAT,CAAgBxU,wBA7BQ,EA8BxBnD,QAAQ,CAAC2X,MAAT,CAAgBvU,wBA9BQ,EA+BxBpD,QAAQ,CAAC2X,MAAT,CAAgBrU,wBA/BQ,EAgCxBtD,QAAQ,CAAC2X,MAAT,CAAgBpU,0BAhCQ,EAiCxBvD,QAAQ,CAAC2X,MAAT,CAAgBjU,0BAjCQ,EAkCxB1D,QAAQ,CAAC2X,MAAT,CAAgB/T,0BAlCQ,EAmCxB5D,QAAQ,CAAC2X,MAAT,CAAgB7T,wBAnCQ,EAoCxB9D,QAAQ,CAAC2X,MAAT,CAAgB1T,wBApCQ,EAqCxBjE,QAAQ,CAAC2X,MAAT,CAAgBvT,wBArCQ,EAsCxBpE,QAAQ,CAAC2X,MAAT,CAAgBtT,wBAtCQ,EAuCxBrE,QAAQ,CAAC2X,MAAT,CAAgBpT,wBAvCQ,EAwCxBvE,QAAQ,CAAC2X,MAAT,CAAgBlT,wBAxCQ,EAyCxBzE,QAAQ,CAAC2X,MAAT,CAAgBhT,0BAzCQ,EA2CxB3E,QAAQ,CAAC2X,MAAT,CAAgBhpB,gBA3CQ,EA4CxBqR,QAAQ,CAAC2X,MAAT,CAAgB9oB,oBA5CQ,EA6CxBmR,QAAQ,CAAC2X,MAAT,CAAgB7oB,mBA7CQ,EA8CxBkR,QAAQ,CAAC2X,MAAT,CAAgB3oB,uBA9CQ,EA+CxBgR,QAAQ,CAAC2X,MAAT,CAAgB1oB,iBA/CQ,EAgDxB+Q,QAAQ,CAAC2X,MAAT,CAAgBxoB,qBAhDQ,EAkDxB6Q,QAAQ,CAAC2X,MAAT,CAAgB1S,mBAlDQ,EAmDxBjF,QAAQ,CAAC2X,MAAT,CAAgBtS,oBAnDQ,EAoDxBrF,QAAQ,CAAC2X,MAAT,CAAgBrS,uBApDQ,EAqDxBtF,QAAQ,CAAC2X,MAAT,CAAgBpS,oBArDQ,EAsDxBvF,QAAQ,CAAC2X,MAAT,CAAgBnS,kBAtDQ,EAuDxBxF,QAAQ,CAAC2X,MAAT,CAAgBlS,oBAvDQ,EAwDxBzF,QAAQ,CAAC2X,MAAT,CAAgBjS,oBAxDQ,EAyDxB1F,QAAQ,CAAC2X,MAAT,CAAgBhS,mBAzDQ,EA0DxB3F,QAAQ,CAAC2X,MAAT,CAAgB/R,qBA1DQ,EA2DxB5F,QAAQ,CAAC2X,MAAT,CAAgB9R,qBA3DQ,EA4DxB7F,QAAQ,CAAC2X,MAAT,CAAgB7R,mBA5DQ,EA6DxB9F,QAAQ,CAAC2X,MAAT,CAAgB5R,mBA7DQ,EA8DxB/F,QAAQ,CAAC2X,MAAT,CAAgB3R,mBA9DQ,EA+DxBhG,QAAQ,CAAC2X,MAAT,CAAgB1R,mBA/DQ,EAgExBjG,QAAQ,CAAC2X,MAAT,CAAgBzR,sBAhEQ,EAiExBlG,QAAQ,CAAC2X,MAAT,CAAgBxR,oBAjEQ,EAkExBnG,QAAQ,CAAC2X,MAAT,CAAgBvR,oBAlEQ,EAmExBpG,QAAQ,CAAC2X,MAAT,CAAgBtR,oBAnEQ,EAoExBrG,QAAQ,CAAC2X,MAAT,CAAgBrR,qBApEQ,EAqExBtG,QAAQ,CAAC2X,MAAT,CAAgBpR,mBArEQ,EAsExBvG,QAAQ,CAAC2X,MAAT,CAAgBnR,mBAtEQ,EAuExBxG,QAAQ,CAAC2X,MAAT,CAAgBlR,uBAvEQ,EAwExBzG,QAAQ,CAAC2X,MAAT,CAAgBjR,+BAxEQ,EAyExB1G,QAAQ,CAAC2X,MAAT,CAAgBhR,YAzEQ,EA0ExB3G,QAAQ,CAAC2X,MAAT,CAAgB9Q,qBA1EQ,EA2ExB7G,QAAQ,CAAC2X,MAAT,CAAgB7Q,mBA3EQ,EA4ExB9G,QAAQ,CAAC2X,MAAT,CAAgB5Q,oBA5EQ,EA6ExB/G,QAAQ,CAAC2X,MAAT,CAAgB3Q,sBA7EQ,EA8ExBhH,QAAQ,CAAC2X,MAAT,CAAgB1Q,mBA9EQ,EA+ExBjH,QAAQ,CAAC2X,MAAT,CAAgBzQ,YA/EQ,EAgFxBlH,QAAQ,CAAC2X,MAAT,CAAgBvQ,YAhFQ,EAiFxBpH,QAAQ,CAAC2X,MAAT,CAAgBrQ,mBAjFQ,EAkFxBtH,QAAQ,CAAC2X,MAAT,CAAgBlQ,oBAlFQ,EAmFxBzH,QAAQ,CAAC2X,MAAT,CAAgBjQ,uBAnFQ,EAoFxB1H,QAAQ,CAAC2X,MAAT,CAAgBhQ,oBApFQ,EAqFxB3H,QAAQ,CAAC2X,MAAT,CAAgB/P,kBArFQ,EAsFxB5H,QAAQ,CAAC2X,MAAT,CAAgB9P,oBAtFQ,EAuFxB7H,QAAQ,CAAC2X,MAAT,CAAgB7P,oBAvFQ,EAwFxB9H,QAAQ,CAAC2X,MAAT,CAAgB5P,mBAxFQ,EAyFxB/H,QAAQ,CAAC2X,MAAT,CAAgB3P,qBAzFQ,EA0FxBhI,QAAQ,CAAC2X,MAAT,CAAgB1P,qBA1FQ,EA2FxBjI,QAAQ,CAAC2X,MAAT,CAAgBzP,mBA3FQ,EA4FxBlI,QAAQ,CAAC2X,MAAT,CAAgBxP,mBA5FQ,EA6FxBnI,QAAQ,CAAC2X,MAAT,CAAgBvP,mBA7FQ,EA8FxBpI,QAAQ,CAAC2X,MAAT,CAAgBtP,mBA9FQ,EA+FxBrI,QAAQ,CAAC2X,MAAT,CAAgBrP,sBA/FQ,EAgGxBtI,QAAQ,CAAC2X,MAAT,CAAgBpP,oBAhGQ,EAiGxBvI,QAAQ,CAAC2X,MAAT,CAAgBnP,oBAjGQ,EAkGxBxI,QAAQ,CAAC2X,MAAT,CAAgBlP,oBAlGQ,EAmGxBzI,QAAQ,CAAC2X,MAAT,CAAgBjP,qBAnGQ,EAoGxB1I,QAAQ,CAAC2X,MAAT,CAAgBhP,mBApGQ,EAqGxB3I,QAAQ,CAAC2X,MAAT,CAAgB/O,mBArGQ,EAsGxB5I,QAAQ,CAAC2X,MAAT,CAAgB9O,uBAtGQ,EAuGxB7I,QAAQ,CAAC2X,MAAT,CAAgB7O,YAvGQ,EAwGxB9I,QAAQ,CAAC2X,MAAT,CAAgB3O,qBAxGQ,EAyGxBhJ,QAAQ,CAAC2X,MAAT,CAAgB1O,mBAzGQ,EA0GxBjJ,QAAQ,CAAC2X,MAAT,CAAgBzO,oBA1GQ,EA2GxBlJ,QAAQ,CAAC2X,MAAT,CAAgBxO,sBA3GQ,EA4GxBnJ,QAAQ,CAAC2X,MAAT,CAAgBvO,mBA5GQ,EA6GxBpJ,QAAQ,CAAC2X,MAAT,CAAgBtO,YA7GQ,EA8GxBrJ,QAAQ,CAAC2X,MAAT,CAAgBpO,YA9GQ,EA+GxBvJ,QAAQ,CAAC2X,MAAT,CAAgBnO,mBA/GQ,EAgHxBxJ,QAAQ,CAAC2X,MAAT,CAAgBhO,oBAhHQ,EAiHxB3J,QAAQ,CAAC2X,MAAT,CAAgB/N,uBAjHQ,EAkHxB5J,QAAQ,CAAC2X,MAAT,CAAgB9N,oBAlHQ,EAmHxB7J,QAAQ,CAAC2X,MAAT,CAAgB7N,kBAnHQ,EAoHxB9J,QAAQ,CAAC2X,MAAT,CAAgB5N,oBApHQ,EAqHxB/J,QAAQ,CAAC2X,MAAT,CAAgB3N,oBArHQ,EAsHxBhK,QAAQ,CAAC2X,MAAT,CAAgB1N,mBAtHQ,EAuHxBjK,QAAQ,CAAC2X,MAAT,CAAgBzN,qBAvHQ,EAwHxBlK,QAAQ,CAAC2X,MAAT,CAAgBxN,qBAxHQ,EAyHxBnK,QAAQ,CAAC2X,MAAT,CAAgBvN,mBAzHQ,EA0HxBpK,QAAQ,CAAC2X,MAAT,CAAgBtN,mBA1HQ,EA2HxBrK,QAAQ,CAAC2X,MAAT,CAAgBrN,mBA3HQ,EA4HxBtK,QAAQ,CAAC2X,MAAT,CAAgBpN,mBA5HQ,EA6HxBvK,QAAQ,CAAC2X,MAAT,CAAgBnN,sBA7HQ,EA8HxBxK,QAAQ,CAAC2X,MAAT,CAAgBlN,oBA9HQ,EA+HxBzK,QAAQ,CAAC2X,MAAT,CAAgBjN,oBA/HQ,EAgIxB1K,QAAQ,CAAC2X,MAAT,CAAgBhN,oBAhIQ,EAiIxB3K,QAAQ,CAAC2X,MAAT,CAAgB/M,qBAjIQ,EAkIxB5K,QAAQ,CAAC2X,MAAT,CAAgB9M,mBAlIQ,EAmIxB7K,QAAQ,CAAC2X,MAAT,CAAgB7M,mBAnIQ,EAoIxB9K,QAAQ,CAAC2X,MAAT,CAAgB5M,uBApIQ,EAqIxB/K,QAAQ,CAAC2X,MAAT,CAAgB3M,mBArIQ,EAsIxBhL,QAAQ,CAAC2X,MAAT,CAAgBzM,qBAtIQ,EAuIxBlL,QAAQ,CAAC2X,MAAT,CAAgBxM,sBAvIQ,EAwIxBnL,QAAQ,CAAC2X,MAAT,CAAgBvM,YAxIQ,EAyIxBpL,QAAQ,CAAC2X,MAAT,CAAgBrM,YAzIQ,EA0IxBtL,QAAQ,CAAC2X,MAAT,CAAgBpM,YA1IQ,EA2IxBvL,QAAQ,CAAC2X,MAAT,CAAgBjM,YA3IQ,EA4IxB1L,QAAQ,CAAC2X,MAAT,CAAgB/L,YA5IQ,EA8IxB5L,QAAQ,CAAC2X,MAAT,CAAgB7L,oBA9IQ,EA+IxB9L,QAAQ,CAAC2X,MAAT,CAAgB1L,qBA/IQ,EAgJxBjM,QAAQ,CAAC2X,MAAT,CAAgBzL,wBAhJQ,EAiJxBlM,QAAQ,CAAC2X,MAAT,CAAgBxL,qBAjJQ,EAkJxBnM,QAAQ,CAAC2X,MAAT,CAAgBvL,qBAlJQ,EAmJxBpM,QAAQ,CAAC2X,MAAT,CAAgBtL,oBAnJQ,EAoJxBrM,QAAQ,CAAC2X,MAAT,CAAgBrL,sBApJQ,EAqJxBtM,QAAQ,CAAC2X,MAAT,CAAgBpL,sBArJQ,EAsJxBvM,QAAQ,CAAC2X,MAAT,CAAgBnL,oBAtJQ,EAuJxBxM,QAAQ,CAAC2X,MAAT,CAAgBlL,oBAvJQ,EAwJxBzM,QAAQ,CAAC2X,MAAT,CAAgBjL,oBAxJQ,EAyJxB1M,QAAQ,CAAC2X,MAAT,CAAgBhL,oBAzJQ,EA0JxB3M,QAAQ,CAAC2X,MAAT,CAAgB/K,uBA1JQ,EA2JxB5M,QAAQ,CAAC2X,MAAT,CAAgB9K,qBA3JQ,EA4JxB7M,QAAQ,CAAC2X,MAAT,CAAgB7K,sBA5JQ,EA6JxB9M,QAAQ,CAAC2X,MAAT,CAAgB5K,qBA7JQ,EA8JxB/M,QAAQ,CAAC2X,MAAT,CAAgB3K,qBA9JQ,EA+JxBhN,QAAQ,CAAC2X,MAAT,CAAgB1K,mBA/JQ,EAgKxBjN,QAAQ,CAAC2X,MAAT,CAAgBzK,qBAhKQ,EAiKxBlN,QAAQ,CAAC2X,MAAT,CAAgBxK,oBAjKQ,EAkKxBnN,QAAQ,CAAC2X,MAAT,CAAgBvK,oBAlKQ,EAmKxBpN,QAAQ,CAAC2X,MAAT,CAAgBtK,wBAnKQ,EAoKxBrN,QAAQ,CAAC2X,MAAT,CAAgBrK,aApKQ,EAqKxBtN,QAAQ,CAAC2X,MAAT,CAAgBnK,sBArKQ,EAsKxBxN,QAAQ,CAAC2X,MAAT,CAAgBlK,oBAtKQ,EAuKxBzN,QAAQ,CAAC2X,MAAT,CAAgBjK,uBAvKQ,EAwKxB1N,QAAQ,CAAC2X,MAAT,CAAgBhK,qBAxKQ,EAyKxB3N,QAAQ,CAAC2X,MAAT,CAAgB/J,oBAzKQ,CAArB;AA2KA5N,uBAAc;AACjBI,+BAA6B,EAAEN,4DAAA,CAAmB;AAC9CK,kBAAc,EAAEN,4FAD8B;AAE9CQ,iBAAa,EAAE7f,oFAF+B;AAG9C+f,gBAAY,EAAEjgB,4EAHgC;AAI9CkgB,kBAAc,EAAE,KAJ8B;AAK9CoX,eAAW,EAAE,KALiC;AAM9CthC,QAAI,EAAE,qBANwC;AAO9CoqB,cAAU,EAAE;AAPkC,GAAnB,CADd;AAUjBE,kCAAgC,EAAEd,4DAAA,CAAmB;AACjDK,kBAAc,EAAEN,+FADiC;AAEjDQ,iBAAa,EAAE7f,oFAFkC;AAGjD+f,gBAAY,EAAEjgB,4EAHmC;AAIjDkgB,kBAAc,EAAE,KAJiC;AAKjDoX,eAAW,EAAE,KALoC;AAMjDthC,QAAI,EAAE,sBAN2C;AAOjDoqB,cAAU,EAAE;AAPqC,GAAnB,CAVjB;AAmBjBI,gCAA8B,EAAEhB,4DAAA,CAAmB;AAC/CK,kBAAc,EAAEN,6FAD+B;AAE/CQ,iBAAa,EAAE7f,oFAFgC;AAG/C+f,gBAAY,EAAEjgB,4EAHiC;AAI/CkgB,kBAAc,EAAE,KAJ+B;AAK/CoX,eAAW,EAAE,KALkC;AAM/CthC,QAAI,EAAE,oBANyC;AAO/CoqB,cAAU,EAAE;AAPmC,GAAnB,CAnBf;AA4BjBM,4BAA0B,EAAElB,4DAAA,CAAmB;AAC3CK,kBAAc,EAAEN,yFAD2B;AAE3CQ,iBAAa,EAAE7f,oFAF4B;AAG3C+f,gBAAY,EAAEjgB,4EAH6B;AAI3CkgB,kBAAc,EAAE,MAJ2B;AAK3CoX,eAAW,EAAE,MAL8B;AAM3CthC,QAAI,EAAE,uBANqC;AAO3CoqB,cAAU,EAAE;AAP+B,GAAnB,CA5BX;AAqCjBU,gCAA8B,EAAEtB,4DAAA,CAAmB;AAC/CK,kBAAc,EAAEN,6FAD+B;AAE/CQ,iBAAa,EAAE7f,oFAFgC;AAG/C+f,gBAAY,EAAEjgB,4EAHiC;AAI/CkgB,kBAAc,EAAE,KAJ+B;AAK/CoX,eAAW,EAAE,KALkC;AAM/CthC,QAAI,EAAE,qBANyC;AAO/CoqB,cAAU,EAAE;AAPmC,GAAnB,CArCf;AA8CjBe,oCAAkC,EAAE3B,4DAAA,CAAmB;AACnDK,kBAAc,EAAEN,iGADmC;AAEnDQ,iBAAa,EAAE7f,wFAFoC;AAGnD+f,gBAAY,EAAEjgB,4EAHqC;AAInDkgB,kBAAc,EAAE,IAJmC;AAKnDoX,eAAW,EAAE,IALsC;AAMnDthC,QAAI,EAAE,qBAN6C;AAOnDoqB,cAAU,EAAE;AAPuC,GAAnB,CA9CnB;AAuDjBoB,kCAAgC,EAAEhC,4DAAA,CAAmB;AACjDK,kBAAc,EAAEN,+FADiC;AAEjDQ,iBAAa,EAAE7f,wFAFkC;AAGjD+f,gBAAY,EAAEjgB,4EAHmC;AAIjDkgB,kBAAc,EAAE,MAJiC;AAKjDoX,eAAW,EAAE,MALoC;AAMjDthC,QAAI,EAAE,oBAN2C;AAOjDoqB,cAAU,EAAE;AAPqC,GAAnB,CAvDjB;AAgEjBwB,8BAA4B,EAAEpC,4DAAA,CAAmB;AAC7CK,kBAAc,EAAEN,2FAD6B;AAE7CQ,iBAAa,EAAE7f,uFAF8B;AAG7C+f,gBAAY,EAAEjgB,4EAH+B;AAI7CkgB,kBAAc,EAAE,IAJ6B;AAK7CoX,eAAW,EAAE,IALgC;AAM7CthC,QAAI,EAAE,qBANuC;AAO7CoqB,cAAU,EAAE;AAPiC,GAAnB,CAhEb;AAyEjB8B,8BAA4B,EAAE1C,4DAAA,CAAmB;AAC7CK,kBAAc,EAAEN,2FAD6B;AAE7CQ,iBAAa,EAAE7f,uFAF8B;AAG7C+f,gBAAY,EAAEjgB,4EAH+B;AAI7CkgB,kBAAc,EAAE,IAJ6B;AAK7CoX,eAAW,EAAE,IALgC;AAM7CthC,QAAI,EAAE,sBANuC;AAO7CoqB,cAAU,EAAE;AAPiC,GAAnB,CAzEb;AAkFjBmC,8BAA4B,EAAE/C,4DAAA,CAAmB;AAC7CK,kBAAc,EAAEN,2FAD6B;AAE7CQ,iBAAa,EAAE7f,uFAF8B;AAG7C+f,gBAAY,EAAEjgB,4EAH+B;AAI7CkgB,kBAAc,EAAE,IAJ6B;AAK7CoX,eAAW,EAAE,IALgC;AAM7CthC,QAAI,EAAE,oBANuC;AAO7CoqB,cAAU,EAAE;AAPiC,GAAnB,CAlFb;AA2FjBwC,6CAA2C,EAAEpD,4DAAA,CAAmB;AAC5DK,kBAAc,EAAEN,0GAD4C;AAE5DQ,iBAAa,EAAE7f,uFAF6C;AAG5D+f,gBAAY,EAAEjgB,4EAH8C;AAI5DkgB,kBAAc,EAAE,kBAJ4C;AAK5DoX,eAAW,EAAE,kBAL+C;AAM5DthC,QAAI,EAAE,uBANsD;AAO5DoqB,cAAU,EAAE;AAPgD,GAAnB,CA3F5B;AAoGjB2C,0CAAwC,EAAEvD,4DAAA,CAAmB;AACzDK,kBAAc,EAAEN,uGADyC;AAEzDQ,iBAAa,EAAE7f,uFAF0C;AAGzD+f,gBAAY,EAAEjgB,4EAH2C;AAIzDkgB,kBAAc,EAAE,yBAJyC;AAKzDoX,eAAW,EAAE,yBAL4C;AAMzDthC,QAAI,EAAE,uBANmD;AAOzDoqB,cAAU,EAAE;AAP6C,GAAnB,CApGzB;AA6GjB8C,gCAA8B,EAAE1D,4DAAA,CAAmB;AAC/CK,kBAAc,EAAEN,6FAD+B;AAE/CQ,iBAAa,EAAE7f,yFAFgC;AAG/C+f,gBAAY,EAAEjgB,4EAHiC;AAI/CkgB,kBAAc,EAAE,IAJ+B;AAK/CoX,eAAW,EAAE,IALkC;AAM/CthC,QAAI,EAAE,qBANyC;AAO/CoqB,cAAU,EAAE;AAPmC,GAAnB,CA7Gf;AAsHjBiD,gCAA8B,EAAE7D,4DAAA,CAAmB;AAC/CK,kBAAc,EAAEN,6FAD+B;AAE/CQ,iBAAa,EAAE7f,yFAFgC;AAG/C+f,gBAAY,EAAEjgB,4EAHiC;AAI/CkgB,kBAAc,EAAE,IAJ+B;AAK/CoX,eAAW,EAAE,IALkC;AAM/CthC,QAAI,EAAE,sBANyC;AAO/CoqB,cAAU,EAAE;AAPmC,GAAnB,CAtHf;AA+HjBmD,gCAA8B,EAAE/D,4DAAA,CAAmB;AAC/CK,kBAAc,EAAEN,6FAD+B;AAE/CQ,iBAAa,EAAE7f,yFAFgC;AAG/C+f,gBAAY,EAAEjgB,4EAHiC;AAI/CkgB,kBAAc,EAAE,IAJ+B;AAK/CoX,eAAW,EAAE,IALkC;AAM/CthC,QAAI,EAAE,oBANyC;AAO/CoqB,cAAU,EAAE;AAPmC,GAAnB,CA/Hf;AAwIjBqD,yCAAuC,EAAEjE,4DAAA,CAAmB;AACxDK,kBAAc,EAAEN,sGADwC;AAExDQ,iBAAa,EAAE7f,yFAFyC;AAGxD+f,gBAAY,EAAEjgB,4EAH0C;AAIxDkgB,kBAAc,EAAE,MAJwC;AAKxDoX,eAAW,EAAE,MAL2C;AAMxDthC,QAAI,EAAE,qBANkD;AAOxDoqB,cAAU,EAAE;AAP4C,GAAnB,CAxIxB;AAiJjBwD,6BAA2B,EAAEpE,4DAAA,CAAmB;AAC5CK,kBAAc,EAAEN,0FAD4B;AAE5CQ,iBAAa,EAAE7f,sFAF6B;AAG5C+f,gBAAY,EAAEjgB,4EAH8B;AAI5CkgB,kBAAc,EAAE,IAJ4B;AAK5CoX,eAAW,EAAE,IAL+B;AAM5CthC,QAAI,EAAE,qBANsC;AAO5CoqB,cAAU,EAAE;AAPgC,GAAnB,CAjJZ;AA0JjB4D,6BAA2B,EAAExE,4DAAA,CAAmB;AAC5CK,kBAAc,EAAEN,0FAD4B;AAE5CQ,iBAAa,EAAE7f,sFAF6B;AAG5C+f,gBAAY,EAAEjgB,4EAH8B;AAI5CkgB,kBAAc,EAAE,IAJ4B;AAK5CoX,eAAW,EAAE,IAL+B;AAM5CthC,QAAI,EAAE,sBANsC;AAO5CoqB,cAAU,EAAE;AAPgC,GAAnB,CA1JZ;AAmKjB8D,6BAA2B,EAAE1E,4DAAA,CAAmB;AAC5CK,kBAAc,EAAEN,0FAD4B;AAE5CQ,iBAAa,EAAE7f,sFAF6B;AAG5C+f,gBAAY,EAAEjgB,4EAH8B;AAI5CkgB,kBAAc,EAAE,IAJ4B;AAK5CoX,eAAW,EAAE,IAL+B;AAM5CthC,QAAI,EAAE,oBANsC;AAO5CoqB,cAAU,EAAE;AAPgC,GAAnB,CAnKZ;AA4KjBgE,sCAAoC,EAAE5E,4DAAA,CAAmB;AACrDK,kBAAc,EAAEN,mGADqC;AAErDQ,iBAAa,EAAE7f,sFAFsC;AAGrD+f,gBAAY,EAAEjgB,4EAHuC;AAIrDkgB,kBAAc,EAAE,IAJqC;AAKrDoX,eAAW,EAAE,IALwC;AAMrDthC,QAAI,EAAE,uBAN+C;AAOrDoqB,cAAU,EAAE;AAPyC,GAAnB,CA5KrB;AAqLjBkE,mCAAiC,EAAE9E,4DAAA,CAAmB;AAClDK,kBAAc,EAAEN,gGADkC;AAElDQ,iBAAa,EAAE7f,sFAFmC;AAGlD+f,gBAAY,EAAEjgB,4EAHoC;AAIlDkgB,kBAAc,EAAE,MAJkC;AAKlDoX,eAAW,EAAE,MALqC;AAMlDthC,QAAI,EAAE,qBAN4C;AAOlDoqB,cAAU,EAAE;AAPsC,GAAnB,CArLlB;AA8LjBoE,aAAW,EAAEhF,4DAAA,CAAmB;AAC5BK,kBAAc,EAAEN,0EADY;AAE5BQ,iBAAa,EAAE7f,oEAFa;AAG5B+f,gBAAY,EAAEjgB,kEAHc;AAI5BkgB,kBAAc,EAAE,IAJY;AAK5BoX,eAAW,EAAE,KALe;AAM5BthC,QAAI,EAAE,EANsB;AAO5BoqB,cAAU,EAAE;AAPgB,GAAnB,CA9LI;AAuMjBqE,gBAAc,EAAEjF,4DAAA,CAAmB;AAC/BK,kBAAc,EAAEN,6EADe;AAE/BQ,iBAAa,EAAE7f,oEAFgB;AAG/B+f,gBAAY,EAAEjgB,kEAHiB;AAI/BkgB,kBAAc,EAAE,IAJe;AAK/BoX,eAAW,EAAE,KALkB;AAM/BthC,QAAI,EAAE,EANyB;AAO/BoqB,cAAU,EAAE;AAPmB,GAAnB,CAvMC;AAgNjBsE,cAAY,EAAElF,4DAAA,CAAmB;AAC7BK,kBAAc,EAAEN,2EADa;AAE7BQ,iBAAa,EAAE7f,oEAFc;AAG7B+f,gBAAY,EAAEjgB,kEAHe;AAI7BkgB,kBAAc,EAAE,IAJa;AAK7BoX,eAAW,EAAE,KALgB;AAM7BthC,QAAI,EAAE,EANuB;AAO7BoqB,cAAU,EAAE;AAPiB,GAAnB,CAhNG;AAyNjBwE,sBAAoB,EAAEpF,4DAAA,CAAmB;AACrCK,kBAAc,EAAEN,mFADqB;AAErCQ,iBAAa,EAAE7f,2EAFsB;AAGrC+f,gBAAY,EAAEjgB,mEAHuB;AAIrCkgB,kBAAc,EAAE,MAJqB;AAKrCoX,eAAW,EAAE,MALwB;AAMrCthC,QAAI,EAAE,qBAN+B;AAOrCoqB,cAAU,EAAE;AAPyB,GAAnB,CAzNL;AAkOjBkG,qBAAmB,EAAE9G,4DAAA,CAAmB;AACpCK,kBAAc,EAAEN,kFADoB;AAEpCQ,iBAAa,EAAE7f,2EAFqB;AAGpC+f,gBAAY,EAAEjgB,mEAHsB;AAIpCkgB,kBAAc,EAAE,MAJoB;AAKpCoX,eAAW,EAAE,MALuB;AAMpCthC,QAAI,EAAE,sBAN8B;AAOpCoqB,cAAU,EAAE;AAPwB,GAAnB,CAlOJ;AA2OjByG,wBAAsB,EAAErH,4DAAA,CAAmB;AACvCK,kBAAc,EAAEN,qFADuB;AAEvCQ,iBAAa,EAAE7f,2EAFwB;AAGvC+f,gBAAY,EAAEjgB,mEAHyB;AAIvCkgB,kBAAc,EAAE,MAJuB;AAKvCoX,eAAW,EAAE,MAL0B;AAMvCthC,QAAI,EAAE,oBANiC;AAOvCoqB,cAAU,EAAE;AAP2B,GAAnB,CA3OP;AAoPjB2G,uBAAqB,EAAEvH,4DAAA,CAAmB;AACtCK,kBAAc,EAAEN,oFADsB;AAEtCQ,iBAAa,EAAE7f,kFAFuB;AAGtC+f,gBAAY,EAAEjgB,mEAHwB;AAItCkgB,kBAAc,EAAE,QAJsB;AAKtCoX,eAAW,EAAE,QALyB;AAMtCthC,QAAI,EAAE,uBANgC;AAOtCoqB,cAAU,EAAE;AAP0B,GAAnB,CApPN;AA6PjB6G,yBAAuB,EAAEzH,4DAAA,CAAmB;AACxCK,kBAAc,EAAEN,sFADwB;AAExCQ,iBAAa,EAAE7f,8EAFyB;AAGxC+f,gBAAY,EAAEjgB,mEAH0B;AAIxCkgB,kBAAc,EAAE,MAJwB;AAKxCoX,eAAW,EAAE,MAL2B;AAMxCthC,QAAI,EAAE,qBANkC;AAOxCoqB,cAAU,EAAE;AAP4B,GAAnB,CA7PR;AAsQjBqI,wBAAsB,EAAEjJ,4DAAA,CAAmB;AACvCK,kBAAc,EAAEN,qFADuB;AAEvCQ,iBAAa,EAAE7f,8EAFwB;AAGvC+f,gBAAY,EAAEjgB,mEAHyB;AAIvCkgB,kBAAc,EAAE,MAJuB;AAKvCoX,eAAW,EAAE,MAL0B;AAMvCthC,QAAI,EAAE,sBANiC;AAOvCoqB,cAAU,EAAE;AAP2B,GAAnB,CAtQP;AA+QjB4I,2BAAyB,EAAExJ,4DAAA,CAAmB;AAC1CK,kBAAc,EAAEN,wFAD0B;AAE1CQ,iBAAa,EAAE7f,8EAF2B;AAG1C+f,gBAAY,EAAEjgB,mEAH4B;AAI1CkgB,kBAAc,EAAE,MAJ0B;AAK1CoX,eAAW,EAAE,MAL6B;AAM1CthC,QAAI,EAAE,oBANoC;AAO1CoqB,cAAU,EAAE;AAP8B,GAAnB,CA/QV;AAwRjB+I,+BAA6B,EAAE3J,4DAAA,CAAmB;AAC9CK,kBAAc,EAAEN,4FAD8B;AAE9CQ,iBAAa,EAAE7f,oFAF+B;AAG9C+f,gBAAY,EAAEjgB,mEAHgC;AAI9CkgB,kBAAc,EAAE,MAJ8B;AAK9CoX,eAAW,EAAE,MALiC;AAM9CthC,QAAI,EAAE,qBANwC;AAO9CoqB,cAAU,EAAE;AAPkC,GAAnB,CAxRd;AAiSjBuK,8BAA4B,EAAEnL,4DAAA,CAAmB;AAC7CK,kBAAc,EAAEN,2FAD6B;AAE7CQ,iBAAa,EAAE7f,oFAF8B;AAG7C+f,gBAAY,EAAEjgB,mEAH+B;AAI7CkgB,kBAAc,EAAE,MAJ6B;AAK7CoX,eAAW,EAAE,MALgC;AAM7CthC,QAAI,EAAE,sBANuC;AAO7CoqB,cAAU,EAAE;AAPiC,GAAnB,CAjSb;AA0SjB2K,iCAA+B,EAAEvL,4DAAA,CAAmB;AAChDK,kBAAc,EAAEN,8FADgC;AAEhDQ,iBAAa,EAAE7f,oFAFiC;AAGhD+f,gBAAY,EAAEjgB,mEAHkC;AAIhDkgB,kBAAc,EAAE,MAJgC;AAKhDoX,eAAW,EAAE,MALmC;AAMhDthC,QAAI,EAAE,oBAN0C;AAOhDoqB,cAAU,EAAE;AAPoC,GAAnB,CA1ShB;AAmTjB8K,2BAAyB,EAAE1L,4DAAA,CAAmB;AAC1CK,kBAAc,EAAEN,wFAD0B;AAE1CQ,iBAAa,EAAE7f,2EAF2B;AAG1C+f,gBAAY,EAAEjgB,mEAH4B;AAI1CkgB,kBAAc,EAAE,KAJ0B;AAK1CoX,eAAW,EAAE,KAL6B;AAM1CthC,QAAI,EAAE,qBANoC;AAO1CoqB,cAAU,EAAE;AAP8B,GAAnB,CAnTV;AA4TjBiL,yBAAuB,EAAE7L,4DAAA,CAAmB;AACxCK,kBAAc,EAAEN,sFADwB;AAExCQ,iBAAa,EAAE7f,2EAFyB;AAGxC+f,gBAAY,EAAEjgB,mEAH0B;AAIxCkgB,kBAAc,EAAE,MAJwB;AAKxCoX,eAAW,EAAE,MAL2B;AAMxCthC,QAAI,EAAE,sBANkC;AAOxCoqB,cAAU,EAAE;AAP4B,GAAnB,CA5TR;AAqUjBmL,sBAAoB,EAAE/L,4DAAA,CAAmB;AACrCK,kBAAc,EAAEN,mFADqB;AAErCQ,iBAAa,EAAE7f,2EAFsB;AAGrC+f,gBAAY,EAAEjgB,mEAHuB;AAIrCkgB,kBAAc,EAAE,OAJqB;AAKrCoX,eAAW,EAAE,OALwB;AAMrCthC,QAAI,EAAE,oBAN+B;AAOrCoqB,cAAU,EAAE;AAPyB,GAAnB,CArUL;AA8UjBqL,2BAAyB,EAAEjM,4DAAA,CAAmB;AAC1CK,kBAAc,EAAEN,wFAD0B;AAE1CQ,iBAAa,EAAE7f,gFAF2B;AAG1C+f,gBAAY,EAAEjgB,qEAH4B;AAI1CkgB,kBAAc,EAAE,OAJ0B;AAK1CoX,eAAW,EAAE,OAL6B;AAM1CthC,QAAI,EAAE,qBANoC;AAO1CoqB,cAAU,EAAE;AAP8B,GAAnB,CA9UV;AAuVjB6M,0BAAwB,EAAEzN,4DAAA,CAAmB;AACzCK,kBAAc,EAAEN,uFADyB;AAEzCQ,iBAAa,EAAE7f,gFAF0B;AAGzC+f,gBAAY,EAAEjgB,qEAH2B;AAIzCkgB,kBAAc,EAAE,OAJyB;AAKzCoX,eAAW,EAAE,OAL4B;AAMzCthC,QAAI,EAAE,sBANmC;AAOzCoqB,cAAU,EAAE;AAP6B,GAAnB;AAvVT,CAAd;AAiWAV,0BAA+B,CAClCA,QAAQ,CAAC6X,WAAT,CAAqB7W,0BADa,EAElChB,QAAQ,CAAC6X,WAAT,CAAqBzX,6BAFa,EAGlCJ,QAAQ,CAAC6X,WAAT,CAAqBjX,gCAHa,EAIlCZ,QAAQ,CAAC6X,WAAT,CAAqB/W,8BAJa,EAKlCd,QAAQ,CAAC6X,WAAT,CAAqBzW,8BALa,EAMlCpB,QAAQ,CAAC6X,WAAT,CAAqBpW,kCANa,EAOlCzB,QAAQ,CAAC6X,WAAT,CAAqB/V,gCAPa,EAQlC9B,QAAQ,CAAC6X,WAAT,CAAqB3V,4BARa,EASlClC,QAAQ,CAAC6X,WAAT,CAAqBrV,4BATa,EAUlCxC,QAAQ,CAAC6X,WAAT,CAAqBhV,4BAVa,EAWlC7C,QAAQ,CAAC6X,WAAT,CAAqB3U,2CAXa,EAYlClD,QAAQ,CAAC6X,WAAT,CAAqBxU,wCAZa,EAalCrD,QAAQ,CAAC6X,WAAT,CAAqBrU,8BAba,EAclCxD,QAAQ,CAAC6X,WAAT,CAAqBlU,8BAda,EAelC3D,QAAQ,CAAC6X,WAAT,CAAqBhU,8BAfa,EAgBlC7D,QAAQ,CAAC6X,WAAT,CAAqB9T,uCAhBa,EAiBlC/D,QAAQ,CAAC6X,WAAT,CAAqB3T,2BAjBa,EAkBlClE,QAAQ,CAAC6X,WAAT,CAAqBvT,2BAlBa,EAmBlCtE,QAAQ,CAAC6X,WAAT,CAAqBrT,2BAnBa,EAoBlCxE,QAAQ,CAAC6X,WAAT,CAAqBnT,oCApBa,EAqBlC1E,QAAQ,CAAC6X,WAAT,CAAqBjT,iCArBa,EAuBlC5E,QAAQ,CAAC6X,WAAT,CAAqB/S,WAvBa,EAwBlC9E,QAAQ,CAAC6X,WAAT,CAAqB9S,cAxBa,EAyBlC/E,QAAQ,CAAC6X,WAAT,CAAqB7S,YAzBa,EA2BlChF,QAAQ,CAAC6X,WAAT,CAAqB3S,oBA3Ba,EA4BlClF,QAAQ,CAAC6X,WAAT,CAAqBjR,mBA5Ba,EA6BlC5G,QAAQ,CAAC6X,WAAT,CAAqB1Q,sBA7Ba,EA8BlC;AACAnH,QAAQ,CAAC6X,WAAT,CAAqBtQ,uBA/Ba,EAgClCvH,QAAQ,CAAC6X,WAAT,CAAqB9O,sBAhCa,EAiClC/I,QAAQ,CAAC6X,WAAT,CAAqBvO,yBAjCa,EAkClC;AACAtJ,QAAQ,CAAC6X,WAAT,CAAqBpO,6BAnCa,EAoClCzJ,QAAQ,CAAC6X,WAAT,CAAqB5M,4BApCa,EAqClCjL,QAAQ,CAAC6X,WAAT,CAAqBxM,+BArCa,EAsClCrL,QAAQ,CAAC6X,WAAT,CAAqBxQ,qBAtCa,EAuClCrH,QAAQ,CAAC6X,WAAT,CAAqBrM,yBAvCa,EAwClCxL,QAAQ,CAAC6X,WAAT,CAAqBlM,uBAxCa,EAyClC3L,QAAQ,CAAC6X,WAAT,CAAqBhM,oBAzCa,EA2ClC7L,QAAQ,CAAC6X,WAAT,CAAqB9L,yBA3Ca,EA4ClC/L,QAAQ,CAAC6X,WAAT,CAAqBtK,wBA5Ca,CAA/B;AA8CAvN,yBAA6B,CAChCD,yDAAA,CAAiBvf,oFAAjB,EAAsDF,4EAAtD,EAAoF,KAApF,EAA2F,KAA3F,EAAkG,WAAlG,EAA+G,oBAA/G,EAAqI,0BAArI,CADgC,EAEhCyf,yDAAA,CAAiBvf,oFAAjB,EAAsDF,4EAAtD,EAAoF,KAApF,EAA2F,KAA3F,EAAkG,eAAlG,EAAmH,wBAAnH,EAA6I,0BAA7I,CAFgC,EAGhCyf,yDAAA,CAAiBvf,wFAAjB,EAA0DF,4EAA1D,EAAwF,IAAxF,EAA8F,IAA9F,EAAoG,eAApG,EAAqH,wBAArH,EAA+I,8BAA/I,CAHgC,EAIhCyf,yDAAA,CAAiBvf,uFAAjB,EAAyDF,4EAAzD,EAAuF,MAAvF,EAA+F,MAA/F,EAAuG,gBAAvG,EAAyH,yBAAzH,EAAoJ,6BAApJ,CAJgC,EAKhCyf,yDAAA,CAAiBvf,yFAAjB,EAA2DF,4EAA3D,EAAyF,IAAzF,EAA+F,IAA/F,EAAqG,cAArG,EAAqH,uBAArH,EAA8I,+BAA9I,CALgC,EAMhCyf,yDAAA,CAAiBvf,yFAAjB,EAA2DF,4EAA3D,EAAyF,IAAzF,EAA+F,IAA/F,EAAqG,gBAArG,EAAuH,yBAAvH,EAAkJ,+BAAlJ,CANgC,EAOhCyf,yDAAA,CAAiBvf,sFAAjB,EAAwDF,4EAAxD,EAAsF,KAAtF,EAA6F,KAA7F,EAAoG,aAApG,EAAmH,sBAAnH,EAA2I,4BAA3I,CAPgC,EAQhCyf,yDAAA,CAAiBvf,sFAAjB,EAAwDF,4EAAxD,EAAsF,MAAtF,EAA8F,MAA9F,EAAsG,aAAtG,EAAqH,sBAArH,EAA6I,4BAA7I,CARgC,EAShCyf,yDAAA,CAAiBvf,oEAAjB,EAAsCF,kEAAtC,EAA0D,IAA1D,EAAgE,IAAhE,EAAsE,cAAtE,EAAsF,uBAAtF,EAA+G,UAA/G,CATgC,EAUhCyf,yDAAA,CAAiBvf,2EAAjB,EAA6CF,mEAA7C,EAAkE,IAAlE,EAAwE,IAAxE,EAA8E,WAA9E,EAA2F,oBAA3F,EAAiH,gBAAjH,CAVgC,EAWhCyf,yDAAA,CAAiBvf,8EAAjB,EAAgDF,mEAAhD,EAAqE,IAArE,EAA2E,IAA3E,EAAiF,cAAjF,EAAiG,uBAAjG,EAA0H,mBAA1H,CAXgC,EAYhCyf,yDAAA,CAAiBvf,oFAAjB,EAAsDF,mEAAtD,EAA2E,IAA3E,EAAiF,IAAjF,EAAuF,oBAAvF,EAA6G,6BAA7G,EAA4I,yBAA5I,CAZgC,EAahCyf,yDAAA,CAAiBvf,kFAAjB,EAAoDF,mEAApD,EAAyE,IAAzE,EAA+E,IAA/E,EAAqF,kBAArF,EAAyG,2BAAzG,EAAsI,uBAAtI,CAbgC,EAchCyf,yDAAA,CAAiBvf,2EAAjB,EAA6CF,mEAA7C,EAAkE,IAAlE,EAAwE,IAAxE,EAA8E,WAA9E,EAA2F,oBAA3F,EAAiH,gBAAjH,CAdgC,EAehCyf,yDAAA,CAAiBvf,gFAAjB,EAAkDF,qEAAlD,EAAyE,KAAzE,EAAgF,KAAhF,EAAuF,gBAAvF,EAAyG,yBAAzG,EAAoI,qBAApI,CAfgC,CAA7B;AAiBA0f,wBAA2B,CAC9BvhB,uDAAA,CAAgB6B,4EAAhB,EAA8C,MAA9C,CAD8B,EAE9B7B,uDAAA,CAAgB6B,kEAAhB,EAAoC,MAApC,CAF8B,EAG9B7B,uDAAA,CAAgB6B,mEAAhB,EAAqC,MAArC,CAH8B,CAA3B;AAKA0f,+BAAoE;AACvE5Q,MAAI,EAAE,EADiE;AAEvE0oB,mBAAiB,EAAE,mBAFoD;AAGvEC,mBAAiB,EAAE,mBAHoD;AAIvEtM,gBAAc,EAAE,gBAJuD;AAKvEuM,iBAAe,EAAE,mBALsD;AAMvEC,2BAAyB,EAAE,4BAN4C;AAOvEC,yBAAuB,EAAE,0BAP8C;AAQvEC,wBAAsB,EAAE,yBAR+C;AASvEC,6BAA2B,EAAE,+BAT0C;AAUvEC,2BAAyB,EAAE,4BAV4C;AAWvEC,0BAAwB,EAAE,2BAX6C;AAYvEC,wBAAsB,EAAE,yBAZ+C;AAavEC,wBAAsB,EAAE,yBAb+C;AAcvEC,wBAAsB,EAAE,yBAd+C;AAevE/W,6BAA2B,EAAE,8BAf0C;AAgBvES,4BAA0B,EAAE,6BAhB2C;AAiBvEuW,oCAAkC,EAAE,sCAjBmC;AAkBvEC,6BAA2B,EAAE,8BAlB0C;AAmBvElV,8BAA4B,EAAE,+BAnByC;AAoBvEO,8BAA4B,EAAE,+BApByC;AAqBvEG,2BAAyB,EAAE,4BArB4C;AAsBvEyU,uBAAqB,EAAE,uBAtBgD;AAuBvEC,6BAA2B,EAAE,8BAvB0C;AAwBvEC,2BAAyB,EAAE,4BAxB4C;AAyBvEC,2BAAyB,EAAE,4BAzB4C;AA0BvEC,kBAAgB,EAAE,kBA1BqD;AA2BvE3X,yBAAuB,EAAE,0BA3B8C;AA4BvEwD,2BAAyB,EAAE;AA5B4C,CAApE;AA8BA7E,0BAAqE;AACxEiZ,UAAQ,EAAE,IAD8D;AAExEt6B,UAAQ,EAAE,IAF8D;AAGxEu6B,OAAK,EAAE;AAHiE,CAArE;AAKAlZ,2BAAsE;AACzEiZ,UAAQ,EAAE,UAD+D;AAEzEt6B,UAAQ,EAAE,UAF+D;AAGzEu6B,OAAK,EAAE;AAHkE,CAAtE;AAKAlZ,kCAAoD;AACvDmZ,GAAC,EAAE,MADoD;AAEvDC,GAAC,EAAE,MAFoD;AAGvDC,GAAC,EAAE,MAHoD;AAIvDC,GAAC,EAAE,QAJoD;AAKvDC,IAAE,EAAE,OALmD;AAMvDC,IAAE,EAAE;AANmD,CAApD;AAQAxZ,gCAAwD;AAC3Dld,GAAC,EAAEnI,2JADwD;AAE3DoI,GAAC,EAAEpI,8JAFwD;AAG3DqI,GAAC,EAAErI,oKAHwD;AAI3DsI,GAAC,EAAEtI,2JAJwD;AAK3D2+B,GAAC,EAAE3+B,kKAAyBi/B;AAL+B,CAAxD;AAOA5Z,+BAAyE;AAC5E5Q,MAAI,EAAE,EADsE;AAE5EghB,YAAU,EAAE,QAFgE;AAG5EC,aAAW,EAAE,QAH+D;AAI5EC,gBAAc,EAAE,QAJ4D;AAK5EC,aAAW,EAAE,QAL+D;AAM5EC,WAAS,EAAE,QANiE;AAO5EC,aAAW,EAAE,QAP+D;AAQ5EC,aAAW,EAAE,QAR+D;AAS5EC,YAAU,EAAE,QATgE;AAU5EC,cAAY,EAAE,QAV8D;AAW5EC,cAAY,EAAE,QAX8D;AAY5EC,YAAU,EAAE,QAZgE;AAa5EC,YAAU,EAAE,QAbgE;AAc5EC,YAAU,EAAE,QAdgE;AAe5EC,YAAU,EAAE,QAfgE;AAgB5EC,eAAa,EAAE,QAhB6D;AAiB5EC,aAAW,EAAE,QAjB+D;AAkB5EC,aAAW,EAAE,QAlB+D;AAmB5EC,aAAW,EAAE,QAnB+D;AAoB5EC,cAAY,EAAE,QApB8D;AAqB5EC,YAAU,EAAE,QArBgE;AAsB5EC,YAAU,EAAE,QAtBgE;AAuB5EC,gBAAc,EAAE,QAvB4D;AAwB5EC,wBAAsB,EAAE,WAxBoD;AAyB5EC,KAAG,EAAE,MAzBuE;AA0B5EC,cAAY,EAAE,WA1B8D;AA2B5EC,YAAU,EAAE,WA3BgE;AA4B5EC,aAAW,EAAE,WA5B+D;AA6B5EC,eAAa,EAAE,WA7B6D;AA8B5EC,YAAU,EAAE,WA9BgE;AA+B5EC,KAAG,EAAE,MA/BuE;AAgC5EC,KAAG,EAAE,QAhCuE;AAiC5EC,YAAU,EAAE,QAjCgE;AAkC5EC,aAAW,EAAE,QAlC+D;AAmC5EC,gBAAc,EAAE,QAnC4D;AAoC5EC,aAAW,EAAE,QApC+D;AAqC5EC,WAAS,EAAE,QArCiE;AAsC5EC,aAAW,EAAE,QAtC+D;AAuC5EC,aAAW,EAAE,QAvC+D;AAwC5EC,YAAU,EAAE,QAxCgE;AAyC5EC,cAAY,EAAE,QAzC8D;AA0C5EC,cAAY,EAAE,QA1C8D;AA2C5EC,YAAU,EAAE,QA3CgE;AA4C5EC,YAAU,EAAE,QA5CgE;AA6C5EC,YAAU,EAAE,QA7CgE;AA8C5EC,YAAU,EAAE,QA9CgE;AA+C5EC,eAAa,EAAE,QA/C6D;AAgD5EC,aAAW,EAAE,QAhD+D;AAiD5EC,aAAW,EAAE,QAjD+D;AAkD5EC,aAAW,EAAE,QAlD+D;AAmD5EC,cAAY,EAAE,QAnD8D;AAoD5EC,YAAU,EAAE,QApDgE;AAqD5EC,YAAU,EAAE,QArDgE;AAsD5EC,gBAAc,EAAE,QAtD4D;AAuD5EC,KAAG,EAAE,MAvDuE;AAwD5EC,cAAY,EAAE,WAxD8D;AAyD5EC,YAAU,EAAE,WAzDgE;AA0D5EC,aAAW,EAAE,WA1D+D;AA2D5EC,eAAa,EAAE,WA3D6D;AA4D5EC,YAAU,EAAE,WA5DgE;AA6D5EC,KAAG,EAAE,MA7DuE;AA8D5EC,KAAG,EAAE,QA9DuE;AA+D5EC,YAAU,EAAE,QA/DgE;AAgE5EC,aAAW,EAAE,QAhE+D;AAiE5EC,gBAAc,EAAE,QAjE4D;AAkE5EC,aAAW,EAAE,QAlE+D;AAmE5EC,WAAS,EAAE,QAnEiE;AAoE5EC,aAAW,EAAE,QApE+D;AAqE5EC,aAAW,EAAE,QArE+D;AAsE5EC,YAAU,EAAE,QAtEgE;AAuE5EC,cAAY,EAAE,QAvE8D;AAwE5EC,cAAY,EAAE,QAxE8D;AAyE5EC,YAAU,EAAE,QAzEgE;AA0E5EC,YAAU,EAAE,QA1EgE;AA2E5EC,YAAU,EAAE,QA3EgE;AA4E5EC,YAAU,EAAE,QA5EgE;AA6E5EC,eAAa,EAAE,QA7E6D;AA8E5EC,aAAW,EAAE,QA9E+D;AA+E5EC,aAAW,EAAE,QA/E+D;AAgF5EC,aAAW,EAAE,QAhF+D;AAiF5EC,cAAY,EAAE,QAjF8D;AAkF5EC,YAAU,EAAE,QAlFgE;AAmF5EC,YAAU,EAAE,QAnFgE;AAoF5EC,gBAAc,EAAE,QApF4D;AAqF5EC,YAAU,EAAE,MArFgE;AAsF5EC,cAAY,EAAE,WAtF8D;AAuF5EC,eAAa,EAAE,WAvF6D;AAwF5EC,KAAG,EAAE,MAxFuE;AAyF5EC,KAAG,EAAE,QAzFuE;AA0F5EC,KAAG,EAAE,gBA1FuE;AA2F5EC,KAAG,EAAE,SA3FuE;AA4F5EC,KAAG,EAAE;AA5FuE,CAAzE;AA8FA9V,iCAA6E;AAChF5Q,MAAI,EAAE,EAD0E;AAEhF2mB,aAAW,EAAE,SAFmE;AAGhFC,cAAY,EAAE,SAHkE;AAIhFC,iBAAe,EAAE,SAJ+D;AAKhFC,cAAY,EAAE,SALkE;AAMhFC,cAAY,EAAE,SANkE;AAOhFC,aAAW,EAAE,SAPmE;AAQhFC,eAAa,EAAE,SARiE;AAShFC,eAAa,EAAE,SATiE;AAUhFC,aAAW,EAAE,SAVmE;AAWhFC,aAAW,EAAE,SAXmE;AAYhFC,aAAW,EAAE,SAZmE;AAahFC,aAAW,EAAE,SAbmE;AAchFC,gBAAc,EAAE,SAdgE;AAehFC,cAAY,EAAE,SAfkE;AAgBhFC,eAAa,EAAE,SAhBiE;AAiBhFC,cAAY,EAAE,SAjBkE;AAkBhFC,cAAY,EAAE,SAlBkE;AAmBhFC,YAAU,EAAE,SAnBoE;AAoBhFC,cAAY,EAAE,SApBkE;AAqBhFC,aAAW,EAAE,SArBmE;AAsBhFC,aAAW,EAAE,WAtBmE;AAuBhFC,iBAAe,EAAE,WAvB+D;AAwBhFC,MAAI,EAAE,OAxB0E;AAyBhFC,eAAa,EAAE,aAzBiE;AA0BhFC,aAAW,EAAE,aA1BmE;AA2BhFC,gBAAc,EAAE,aA3BgE;AA4BhFC,cAAY,EAAE,aA5BkE;AA6BhFC,aAAW,EAAE;AA7BmE,CAA7E;AA+BA1X,kCAA2F;AAC9FyZ,OAAK,EAAE7+B,kLADuF;AAE9F8+B,UAAQ,EAAE9+B,qLAFoF;AAG9F++B,gBAAc,EAAE/+B,2LAH8E;AAI9Fs+B,OAAK,EAAEt+B,kLAJuF;AAK9FoE,YAAU,EAAEpE,uLALkF;AAM9Fg/B,cAAY,EAAEh/B,yLAAqCg/B;AAN2C,CAA3F;AAQA5Z,8BAAqE;AACxEyZ,OAAK,EAAE,KADiE;AAExEC,UAAQ,EAAE,KAF8D;AAGxEC,gBAAc,EAAE,KAHwD;AAIxEC,cAAY,EAAE,KAJ0D;AAKxEV,OAAK,EAAE,KALiE;AAMxEl6B,YAAU,EAAE;AAN4D,CAArE;;;;;;;;;;;;;;;ACvrFJ,IAAKsB,UAMX;AAND,aAAYA,UAAZ,EAAsB;AAClBA;AACAA;AACAA;AACAA;AACAA;AACH,GAND,EAAYA,UAAU,KAAVA,UAAU,MAAtB,CAMC;;AAAA,SANWA,UAMX;AAAA,IAND;;;;;;;;;;;;;;;;ACAA;AAGM,MAAO7B,QAAP,CAAe;AAEG,MAAhBo7B,gBAAgB;AAAa,WAAOv5B,0DAAU,CAAC,KAAKigB,YAAN,CAAjB;AAAuC;;AAG3D,SAAN56B,MAAM,CACT46B,YADS,EAEPzrB,IAFO,EAEK;AAEd,UAAMhW,CAAC,GAAG,IAAI2f,QAAJ,EAAV;AACA3f,KAAC,CAACyhC,YAAF,GAAiBA,YAAjB;AACAzhC,KAAC,CAACgW,IAAF,GAASA,IAAT;AACA,WAAOhW,CAAP;AACH;;AAbgB;;;;;;;;;;;;;;;ACHd,IAAK+gC,YA+DX;AA/DD,aAAYA,YAAZ,EAAwB;AACpBA,oDADoB,CAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA,6FA5DoB,CA6DpB;AACA;AACH,GA/DD,EAAYA,YAAY,KAAZA,YAAY,MAAxB,CA+DC;;AAAA,SA/DWA,YA+DX;AAAA,IA/DD;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AAGM,MAAOC,UAAP,CAAiB;AAEG,MAAlBga,kBAAkB;AAAa,WAAOja,8DAAY,CAAC,KAAKM,cAAN,CAAnB;AAA0C;;AAGxD,MAAjB4Z,iBAAiB;AAAa,WAAOv5B,4DAAW,CAAC,KAAK6f,aAAN,CAAlB;AAAyC;;AAGvD,MAAhBwZ,gBAAgB;AAAa,WAAOv5B,0DAAU,CAAC,KAAKigB,YAAN,CAAjB;AAAuC;;AAS3D,SAAN56B,MAAM,CACTw6B,cADS,EAEPE,aAFO,EAGPE,YAHO,EAIPC,cAJO,EAKPoX,WALO,EAMPthC,IANO,EAOPoqB,UAPO,EAOW;AAEpB,UAAM5hC,CAAC,GAAG,IAAIghC,UAAJ,EAAV;AACAhhC,KAAC,CAACqhC,cAAF,GAAmBA,cAAnB;AACArhC,KAAC,CAACuhC,aAAF,GAAkBA,aAAlB;AACAvhC,KAAC,CAACyhC,YAAF,GAAiBA,YAAjB;AAEAzhC,KAAC,CAAC0hC,cAAF,GAAmBA,cAAnB;AACA1hC,KAAC,CAAC84C,WAAF,GAAgBA,WAAhB;AACA94C,KAAC,CAACwX,IAAF,GAASA,IAAT;AACAxX,KAAC,CAAC4hC,UAAF,GAAeA,UAAf;AACA,WAAO5hC,CAAP;AACH;;AACa,SAAPohC,OAAO,CAACj7B,IAAD,EAAK;AACf,WAAO0sB,MAAM,CAACqoB,MAAP,CAAc,IAAIla,UAAJ,EAAd,EAAgC76B,IAAhC,CAAP;AACH;;AAvCkB;;;;;;;;;;;;;;;ACLhB,IAAKob,OAwUX;AAxUD,aAAYA,OAAZ,EAAmB;AACfA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACH,GAxUD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AAzB,CAAwCg+B,OAAxC;AAEAG,iBAAG,CAACj0D,WAAJ;AACH;AAhCO,WAJA,CAAZ;AAsCH,SA1CL,EAf+C,CA0D/C;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACH,OA3GD;AA4GH,KAzzByB,CA0zB1B;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;;;AACAy0D,2BAAuB,CAAC12D,IAAD,EAAe;AAClC,UAAI,KAAK60D,eAAL,EAAJ,EAA4B;AAAE;AAAS;;AAEvC,UAAIh9B,OAAO,CAAC,SAAD,CAAX,EAAwB;AACpB,YAAI,KAAKv+B,OAAL,CAAawT,OAAjB,EAA0B;AACtB,eAAKxT,OAAL,CAAa2D,2BAAb;AACA;AACH,SAJmB,CAMpB;;;AACA,aAAKk2B,kBAAL,CAAwBS,yBAAxB,CAAkDp7B,mFAAlD,EAPoB,CASpB;;AACA,aAAKq7D,wBAAL,CAA8B/L,MAA9B,CAAqCzjC,sBAArC,CAA4DrkB,IAAI,CAAC3J,IAAjE,EAAuEmE,SAAvE,CAAiF,MAAK;AAClF;AACA,gBAAM07D,GAAG,GAAG,KAAKrC,wBAAL,CAA8BsC,mBAA9B,GACP37D,SADO,CACG;AACP2E,oBAAQ,EAAE,MAAK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9D,wBAAL,CAA8BlzC,eAA9B,CAA8CrqB,MAFlD,EAGI,KAAK4+D,iBAHT;AAMA,WAAKZ,UAAL,CAAgBC,YAAhB,GAA+B,KAAKiE,mBAAL,CAAyB,KAAK3E,wBAAL,CAA8BvF,mBAAvD,CAA/B;AACA,WAAKuF,wBAAL,CAA8BkB,aAA9B;AACA,WAAKP,gBAAL,GAVwB,CAWxB;AACA;AACA;AACA;AACH,KA/e4B,CAof7B;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;;AAGA;;;AACAc,cAAU,CAACC,eAAD,EAAqB;AAC3B;AACA,UAAI,KAAKC,iBAAL,KAA2BD,eAA/B,EAAgD;AAC5C,aAAKxS,SAAL;AACH,OAFD,MAEO;AACH,aAAKyS,iBAAL,GAAyBD,eAAzB;AACH;AACJ;;AACDxS,aAAS;AACL,WAAKyS,iBAAL,GAAyB,IAAzB;AACH;;AACDC,wBAAoB,CAACz5C,OAAD,EAAmB+N,SAAnB,EAAoC;AACpD,aAAO/N,OAAO,CAAC8d,SAAR,IACH9d,OAAO,CAAC8d,SAAR,CAAkBC,QAAlB,CAA2BhQ,SAA3B,CADJ;AAEH;;AACD2rC,8BAA0B,CAACj2D,EAAD,EAAQ;AAC9B,YAAMgQ,IAAI,GAAGhQ,EAAE,CAACgQ,IAAH,IAAYhQ,EAAE,CAACk6B,YAAH,IAAmBl6B,EAAE,CAACk6B,YAAH,EAA5C;AAEA,aAAOlqB,IAAI,CAACoqB,IAAL,CAAU5gB,CAAC,IAAIA,CAAC,KAAK,KAAKu8C,iBAAX,IACf,KAAKC,oBAAL,CAA0Bx8C,CAA1B,EAA6B,0BAA7B,CADA,CAAP;AAEH;;AAC2C08C,4BAAwB,CAACl2D,EAAD,EAAe;AAC/E,UAAI,CAAC,KAAK+1D,iBAAV,EAA6B;AACzB;AACH;;AACD,UAAI,CAAC,KAAKE,0BAAL,CAAgCj2D,EAAhC,CAAL,EAA0C;AACtC,aAAKsjD,SAAL;AACH;AACJ;AAGD;;;AACArvB,wBAAoB;AAChB,aAAO,KAAKmgC,wBAAL,CAA8B1F,gBAA9B,KAAmD,KAAK0F,wBAAL,CAA8B/L,MAA9B,CAAqC8N,aAAxF,IACA,KAAK/B,wBAAL,CAA8BvF,mBAA9B,KAAsD,KAAKuF,wBAAL,CAA8B/L,MAA9B,CAAqC+N,gBADlG,CADgB,CAIhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACH;;AACDj+B,gBAAY;AACR,UAAI,KAAKi9B,eAAL,EAAJ,EAA4B;AAAE;AAAS,OAD/B,CAGR;;;AACA,WAAKh9B,OAAL,CAAaC,IAAb,CAAkB,CAAlB;AACH,KA9rB4B,CAgsB7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;;AAGA;;;AACA2hC,8BAA0B;AACtB,UAAI,KAAK5E,eAAL,EAAJ,EAA4B;AAAE;AAAS,OADjB,CAGtB;AACA;AACA;;;AACA,YAAMt3C,IAAI,GAAG,KAAKs2C,wBAAL,CAA8BlzC,eAA3C;AACA,YAAMo1C,OAAO,GAAG,KAAKuC,mCAAL,CAAyC58D,SAAzC,CACZ,KAAK6hB,IADO,EAEZ,MAFY,EAEJ,MAFI,EAEI,MAFJ,EAGZ3F,4EAHY,EAGe2F,IAAI,CAACjnB,MAHpB,EAG4B,IAH5B,EAIZ,CAJY,EAITinB,IAAI,CAACjnB,MAJI,EAKZ,KAAKu9D,wBAAL,CAA8B1F,gBAA9B,CAA+C93D,IALnC,CAAhB;AAOA0/D,aAAO,CAACpzD,QAAR,CAAiBgxB,MAAjB,CAAwBn5B,SAAxB,CAAmC44D,cAAD,IAAgC;AAC9D,YAAI,KAAK95D,OAAL,CAAawT,OAAjB,EAA0B;AACtB,eAAKxT,OAAL,CAAa2D,2BAAb;AACA;AACH,SAJ6D,CAM9D;;;AACA,aAAKk2B,kBAAL,CAAwBS,yBAAxB,CAAkDp7B,mFAAlD;AAEA,aAAKq7D,wBAAL,CAA8B/L,MAA9B,CAAqC4R,0BAArC,CAAgEtG,cAAhE,EAAgF54D,SAAhF,CAA0F,MAAK;AAC3F;AACA,gBAAMy7D,QAAQ,GAAG,KAAK38D,OAAL,CAAaiZ,eAAb,EAAjB;;AACA,cAAI0jD,QAAJ,EAAc;AACV,iBAAKpC,wBAAL,CAA8B/L,MAA9B,CAAqClhC,kCAArC,CAAwEqvC,QAAxE,EAAkFz7D,SAAlF;AACH,WAL0F,CAM3F;;;AACA,gBAAM07D,GAAG,GAAG,KAAKrC,wBAAL,CAA8BsC,mBAA9B,GAAoD37D,SAApD,CAA8D;AACtE2E,oBAAQ,EAAE,MAAK;AACX,mBAAK00D,wBAAL,CAA8BkB,aAA9B;AAEA,kBAAIqB,UAAU,GAAG,KAAK74C,IAAL,CAAU2c,IAAV,CAAeljC,CAAC,IAAIA,CAAC,CAACkK,EAAF,GAAO,CAAC,CAAR,IAAalK,CAAC,CAAC4hB,aAAF,KAAoBw6C,cAAc,CAACx6C,aAAhD,IAAiE5hB,CAAC,CAACX,IAAF,KAAW+8D,cAAc,CAAC/8D,IAA/G,CAAjB;;AACA,kBAAI+/D,UAAU,IAAI,IAAlB,EAAwB;AACpBA,0BAAU,GAAGx+C,4EAAb;AACH;;AACD,mBAAKi8C,wBAAL,CAA8BsE,iBAA9B,CAAgD/B,UAAhD,EAPW,CAQX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,mBAAK9B,UAAL,CAAgBC,YAAhB,GAA+B,KAAKiE,mBAAL,CAAyB,KAAK3E,wBAAL,CAA8BvF,mBAAvD,CAA/B,CAhBW,CAiBX;;AACA,mBAAKgG,UAAL,CAAgBU,MAAhB,CACI,KAAKnB,wBAAL,CAA8BlzC,eAA9B,CAA8C5pB,MAA9C,CAAqDC,CAAC,IAAIA,CAAC,KAAK4gB,4EAAhE,EAA2FthB,MAD/F,EAEI,KAAKu9D,wBAAL,CAA8BlzC,eAA9B,CAA8CrqB,MAFlD,EAGI,KAAK4+D,iBAHT,EAlBW,CAuBX;;AACA,mBAAKV,gBAAL,GAxBW,CA0BX;;AACA,mBAAKrhC,kBAAL,CAAwBC,0BAAxB,CAAmD56B,mFAAnD,EA3BW,CA6BX;;AACA,mBAAK6+B,mBAAL,CAAyBU,cAAzB,CAAwCg+B,OAAxC;AAEAG,iBAAG,CAACj0D,WAAJ;AACH;AAlCqE,WAA9D,CAAZ;AAoCH,SA3CD,EAT8D,CAuD9D;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACH,OArGD;AAsGH,KAh1B4B,CAi1B7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA03D,4BAAwB,CAAC35D,IAAD,EAAkB;AACtC,UAAI,KAAK60D,eAAL,EAAJ,EAA4B;AAAE;AAAS,OADD,CAItC;;;AACA,YAAMt3C,IAAI,GAAG,KAAKs2C,wBAAL,CAA8BlzC,eAA3C;AACA,YAAMoyC,KAAK,GAAGx1C,IAAI,CAACxmB,MAAL,CAAYC,CAAC,IAAIA,CAAC,CAAC4hB,aAAF,KAAoB,KAAKi7C,wBAAL,CAA8B1F,gBAA9B,CAA+C93D,IAApF,CAAd;AACA,YAAMujE,MAAM,GAAG7G,KAAK,CAACz8D,MAAN,GAAey8D,KAAK,CAACA,KAAK,CAACz8D,MAAN,GAAe,CAAhB,CAAL,CAAwB4K,EAAvC,GAA4C,CAA3D,CAPsC,CAQtC;AACA;AAEA;;AAEA,YAAM24D,cAAc,GAAG75D,IAAI,CAAC4Y,aAA5B;AACA,YAAM2e,UAAU,GAAGv3B,IAAI,CAAC3J,IAAxB,CAdsC,CAgBtC;;AACA,YAAM0/D,OAAO,GAAG,KAAKuC,mCAAL,CAAyC58D,SAAzC,CACZ,KAAK6hB,IADO,EAEZ,MAFY,EAEJ,MAFI,EAEI,MAFJ,EAGZvd,IAAI,CAACy2C,OAHO,EAGEz2C,IAAI,CAACkB,EAHP,EAGWlB,IAAI,CAAC3J,IAHhB,EAIZ2J,IAAI,CAACw6B,eAJO,EAIUo/B,MAJV,EAKZ,KAAK/F,wBAAL,CAA8B1F,gBAA9B,CAA+C93D,IALnC,CAAhB;AAQA0/D,aAAO,CAACpzD,QAAR,CAAiBgxB,MAAjB,CAAwBn5B,SAAxB,CAAmCs/D,iBAAD,IAAmC;AACjE,YAAI,KAAKxgE,OAAL,CAAawT,OAAjB,EAA0B;AACtB,eAAKxT,OAAL,CAAa2D,2BAAb;AACA;AACH,SAJgE,CAMjE;;;AACA,aAAKk2B,kBAAL,CAAwBS,yBAAxB,CAAkDp7B,mFAAlD,EAPiE,CASjE;;AACA,aAAKq7D,wBAAL,CAA8B/L,MAA9B,CACKiS,2BADL,CACiCF,cADjC,EACiDtiC,UADjD,EAC6DuiC,iBAD7D,EAEKt/D,SAFL,CAEe,MAAK;AACZ,gBAAM07D,GAAG,GAAGvC,+CAAQ,CAChB,KAAKE,wBAAL,CAA8B/L,MAA9B,CAAqCvnC,wBAArC,EADgB,EAEhB,KAAKszC,wBAAL,CAA8B/L,MAA9B,CAAqCpnC,2BAArC,EAFgB,EAGhB,KAAKmzC,wBAAL,CAA8B/L,MAA9B,CAAqC0O,oBAArC,EAHgB,CAAR,CAIVh8D,SAJU,CAIA;AACR2E,oBAAQ,EAAE,MAAK;AACX,mBAAK00D,wBAAL,CAA8BvF,mBAA9B,GAAoD,KAAKuF,wBAAL,CAA8B/L,MAA9B,CAAqC2O,gBAArC,CAC/Cv8B,IAD+C,CAC1CljC,CAAC,IAAIA,CAAC,CAAC4hB,aAAF,KAAoBkhD,iBAAiB,CAAClhD,aAAtC,IAAuD5hB,CAAC,CAACX,IAAF,KAAWyjE,iBAAiB,CAACzjE,IAD/C,CAApD;AAEA,mBAAKw9D,wBAAL,CAA8ByD,mBAA9B;AACA,mBAAKzD,wBAAL,CAA8BkB,aAA9B,GAJW,CAMX;;AACA,mBAAKT,UAAL,CAAgBC,YAAhB,GAA+B,KAAKiE,mBAAL,CAAyB,KAAK3E,wBAAL,CAA8BvF,mBAAvD,CAA/B,CAPW,CASX;;AACA,mBAAKgG,UAAL,CAAgBU,MAAhB,CACI,KAAKnB,wBAAL,CAA8BlzC,eAA9B,CAA8C5pB,MAA9C,CAAqDC,CAAC,IAAIA,CAAC,KAAK4gB,4EAAhE,EAA2FthB,MAD/F,EAEI,KAAKu9D,wBAAL,CAA8BlzC,eAA9B,CAA8CrqB,MAFlD,EAGI,KAAK4+D,iBAHT,EAVW,CAeX;;AACA,mBAAKV,gBAAL,GAhBW,CAkBX;;AACA,mBAAKrhC,kBAAL,CAAwBC,0BAAxB,CAAmD56B,mFAAnD,EAnBW,CAqBX;;AACA,mBAAK6+B,mBAAL,CAAyBU,cAAzB,CAAwCg+B,OAAxC;AAEAG,iBAAG,CAACj0D,WAAJ;AACH;AA1BO,WAJA,CAAZ;AAgCH,SAnCL,EAViE,CA8CjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACH,OAhED;AAiEH,KA17B4B,CA27B7B;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;;;AAEA+3D,8BAA0B,CAACh6D,IAAD,EAAkB;AACxC,UAAI,KAAK60D,eAAL,EAAJ,EAA4B;AAAE;AAAS;;AAEvC,UAAIh9B,OAAO,CAAC,SAAD,CAAX,EAAwB;AACpB,YAAI,KAAKv+B,OAAL,CAAawT,OAAjB,EAA0B;AACtB,eAAKxT,OAAL,CAAa2D,2BAAb;AACA;AACH,SAJmB,CAMpB;;;AACA,aAAKk2B,kBAAL,CAAwBS,yBAAxB,CAAkDp7B,mFAAlD,EAPoB,CASpB;AACA;AAEA;;AACA,aAAKq7D,wBAAL,CAA8B/L,MAA9B,CAAqC/iC,yBAArC,CAA+D/kB,IAAI,CAAC4Y,aAApE,EAAmF5Y,IAAI,CAAC3J,IAAxF,EAA8FmE,SAA9F,CAAwG,MAAK;AAEzG,gBAAM07D,GAAG,GAAGvC,+CAAQ,CAChB,KAAKE,wBAAL,CAA8B/L,MAA9B,CAAqCvnC,wBAArC,EADgB,EAEhB,KAAKszC,wBAAL,CAA8B/L,MAA9B,CAAqCpnC,2BAArC,EAFgB,EAGhB,KAAKmzC,wBAAL,CAA8B/L,MAA9B,CAAqC0O,oBAArC,EAHgB,CAAR,CAIVh8D,SAJU,CAIA;AACR2E,oBAAQ,EAAE,MAAK;AACX,mBAAK00D,wBAAL,CAA8BvF,mBAA9B,GAAoD12C,4EAApD;AACA,mBAAKi8C,wBAAL,CAA8BkB,aAA9B,GAFW,CAIX;;AACA,mBAAKT,UAAL,CAAgBC,YAAhB,GAA+B,KAAKiE,mBAAL,CAAyB,KAAK3E,wBAAL,CAA8BvF,mBAAvD,CAA/B,CALW,CAOX;;AACA,mBAAKgG,UAAL,CAAgBU,MAAhB,CACI,KAAKnB,wBAAL,CAA8BlzC,eAA9B,CAA8C5pB,MAA9C,CAAqDC,CAAC,IAAIA,CAAC,KAAK4gB,4EAAhE,EAA2FthB,MAD/F,EAEI,KAAKu9D,wBAAL,CAA8BlzC,eAA9B,CAA8CrqB,MAFlD,EAGI,KAAK4+D,iBAHT,EARW,CAaX;;AACA,mBAAKV,gBAAL,GAdW,CAgBX;;AACA,mBAAKrhC,kBAAL,CAAwBC,0BAAxB,CAAmD56B,mFAAnD;AACA09D,iBAAG,CAACj0D,WAAJ;AACH;AApBO,WAJA,CAAZ,CAFyG,CA8BzG;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACH,SAjED;AAkEH;AACJ;;AA/hC4B;;;qBAApB2wD,sBAAoB3vD,gEAAAA,CAAAA,yFAAAA,GAAAA,gEAAAA,CAAAA,qFAAAA,GAAAA,gEAAAA,CAAAA,kFAAAA,GAAAA,gEAAAA,CAAAA,mIAAAA,GAAAA,gEAAAA,CAAAA,uHAAAA,GAAAA,gEAAAA,CAAAA,mFAAAA,GAAAA,gEAAAA,CAAAA,6EAAAA;AAAA;;;UAApB2vD;AAAoB1vD;AAAAo1B;AAAA;mEAYlBo7B,mFAAmBA,EAAA;mEACnB7F,4FAAsBA,EAAA;;;;;;;;;;;;;iBAbxBzqD;AAAgC;;;;;;;;;;;;;ACzB7CH,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,wDAAAA;AACJA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,yDAAAA;AAAA,iBAASG,gCAAT;AAAqC,SAArC;AACAH,QAAAA,wDAAAA;AACAA,QAAAA,6DAAAA;AAAkBA,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AAC1BA,QAAAA,2DAAAA;AAKAA,QAAAA,6DAAAA;AAA+BA,QAAAA,yDAAAA;AAAA,iBAASG,eAAT;AAAoB,SAApB;AAC3BH,QAAAA,wDAAAA;AACAA,QAAAA,6DAAAA;AAAkBA,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AAC1BA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AAAuBA,QAAAA,qDAAAA;AAAEA,QAAAA,2DAAAA;AACzBA,QAAAA,6DAAAA;AAA4BA,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AACpCA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,yDAAAA;AAMJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AAAuBA,QAAAA,qDAAAA;AAAEA,QAAAA,2DAAAA;AACzBA,QAAAA,6DAAAA;AAA4BA,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AACpCA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,yDAAAA;AAMJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AAAuBA,QAAAA,qDAAAA;AAAEA,QAAAA,2DAAAA;AACzBA,QAAAA,6DAAAA;AAA4BA,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AACpCA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,yDAAAA;AAMJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,wDAAAA;AACJA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AAA2EA,QAAAA,yDAAAA;AAAA,iBAASG,kBAAT;AAAuB,SAAvB;AAAyBH,QAAAA,qDAAAA;AACpGA,QAAAA,2DAAAA;AACAA,QAAAA,wDAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,yDAAAA;AAAA,iBAASG,kBAAT;AAAuB,SAAvB;AAAyBH,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AACjCA,QAAAA,6DAAAA;AACIA,QAAAA,yDAAAA;AAAA,iBAASG,iBAAT;AAAsB,SAAtB;AAAwBH,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AAEpCA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACAA,QAAAA,yDAAAA,kFAAAA,qEAAAA;AAIAA,QAAAA,yDAAAA,kFAAAA,qEAAAA;;;;AA9EqCA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA,YAAAA,8DAAAA;AAqBaA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AAcAA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AAcAA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AAcVA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA,YAAAA,8DAAAA;AAGMA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA,YAAAA,8DAAAA;AAEDA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA,YAAAA,8DAAAA;;;;;;;ADhD7C,SAAa2vD,oBAAb;AAAA;;;;;;;;;;;;;;;;;;AEvBA;;;AAKO,IAAMsH,wBAAb;AAAM,QAAOA,wBAAP,CAA+B;AAEjCtiE,gBACYynD,wBADZ,EAEYC,QAFZ,EAGYC,MAHZ,EAIYloB,mBAJZ,EAIoD;AAHxC;AACA;AACA;AACA;AACP;;AAELmoB,cAAU;AACN,YAAMC,SAAS,GAAG,KAAKJ,wBAAL,CACbK,uBADa,CACWua,0EADX,EAEbn4D,MAFa,CAEN,KAAKw9C,QAFC,CAAlB;AAIAG,eAAS,CAAC98C,QAAV,CAAmBq1B,YAAnB,GAAkCynB,SAAlC;AAEAA,eAAS,CAACj0C,QAAV,CAAmBisB,aAAnB,CAAiC9kB,YAAjC,CAA8C,OAA9C,EAAuD,EAAvD;AACAjV,cAAQ,CAACC,IAAT,CAAc++C,WAAd,CAA0B+C,SAAS,CAACj0C,QAAV,CAAmBisB,aAA7C;AAEA,WAAK8nB,MAAL,CAAYI,UAAZ,CAAuBF,SAAS,CAACG,QAAjC;AAEA,aAAOH,SAAP;AACH;;AAED/jD,aAAS,CACL6vD,SADK,EAELG,KAFK,EAEQ;AAEb,YAAMjM,SAAS,GAAG,KAAKD,UAAL,EAAlB;AAEAC,eAAS,CAAC98C,QAAV,CAAmBm0B,mBAAnB,CAAuCt8B,SAAvC,CAAiD,MAAK;AAClD,cAAMmI,QAAQ,GAAG88C,SAAS,CAAC98C,QAA3B;AACAA,gBAAQ,CAAC20B,SAAT,CACIi0B,SADJ,EAEIG,KAFJ;AAIH,OAND;AAQA,WAAKr0B,mBAAL,CAAyBh6B,IAAzB,CAA8BoiD,SAA9B;AACA,aAAOA,SAAP;AACH;;AAxCgC;;;qBAAxBya,0BAAwBj3D,sDAAAA,CAAAA,mEAAAA,GAAAA,sDAAAA,CAAAA,mDAAAA,GAAAA,sDAAAA,CAAAA,yDAAAA,GAAAA,sDAAAA,CAAAA,qFAAAA;AAAA;;;WAAxBi3D;AAAwBpiE,aAAxBoiE,wBAAwB;AAAAniE,gBAFrB;;AAEhB,SAAamiE,wBAAb;AAAA;;;;;;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;;;;;;;;;;;;;;AAQO,IAAMD,oBAAb;AAAM,QAAOA,oBAAP,SAAoCrjC,6DAApC,CAA6C;AAO/Ch/B,gBACYw/B,UADZ,EAEYC,mBAFZ,EAEoD;AAEhD;AAHQ;AACA;AANF,oBAA+B,IAAIH,uDAAJ,EAA/B;AAEV,mBAAgB,IAAhB;AAOC;;AAED58B,YAAQ,IACP;;AACD4C,mBAAe;AACV,WAAK2sD,aAAL,CAAmBtwB,YAAnB,CAAgC9B,aAAhC,CAAsDvb,KAAtD;AACJ;;AAEDob,aAAS,CACLi0B,SADK,EAELG,KAFK,EAEQ;AAEb,WAAK7B,aAAL,CAAmBiC,YAAnB,CAAgCP,SAAhC;;AACA,UAAIG,KAAK,GAAG,CAAZ,EAAe;AACX,aAAKA,KAAL,GAAaA,KAAb;AACH;AACJ;;AAEDh4B,wBAAoB;AAChB,aAAO,KAAKm2B,aAAL,CAAmBC,aAAnB,IAAoC,IAA3C;AACH;;AACDlnD,cAAU;AACN,WAAKy0B,mBAAL,CAAyBU,cAAzB,CAAwC,KAAKC,YAA7C;AACH;;AAE6CI,aAAS,CAAC34B,EAAD,EAAkB;AACrE;AACA,UAAIA,EAAE,CAACy4B,OAAH,KAAe,EAAnB,EAAuB;AACnB,aAAKb,mBAAL,CAAyBe,SAAzB;AACH;AACJ;;AACD6nB,eAAW;AACP,WAAKtsB,MAAL,CAAYmE,IAAZ,CAAiB,KAAK+xB,aAAL,CAAmBC,aAApC;AACH;;AA7C8C;;;qBAAtCmQ,sBAAoBh3D,+DAAAA,CAAAA,qDAAAA,GAAAA,+DAAAA,CAAAA,qFAAAA;AAAA;;;UAApBg3D;AAAoB/2D;AAAAo1B;AAAA;kEAClB8wB,4FAAsBA,EAAA;;;;;;;;;;;;iBADxBhmD;AAAiB;;;;;;;;;;;;ACV9BH,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkCA,QAAAA,wDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AAAuBH,QAAAA,0DAAAA;AACzDA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AAI1BA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AACtBA,QAAAA,uDAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA+EA,QAAAA,wDAAAA;AAAA,iBAASG,iBAAT;AAAsB,SAAtB;AAAwBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AAC7GA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;;;;AAjB+BA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAUKA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA,WAAS,KAAT,EAASG,SAAT;AAGYH,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA,YAAAA,6DAAAA;;;;;;ADNhD,SAAag3D,oBAAb;AAAA;;;;;;;;;;;;;;;;;;;;;AEVA;AAEA;AACA;AACA;AACA;;AAYO,IAAMv1D,iBAAb;AAAM,QAAOA,iBAAP,CAAwB;;;qBAAjBA;AAAiB;;;UAAjBA;;;cATA,CACL0vB,yDADK,EAELC,2FAFK,EAGL42B,sFAHK,EAILh0B,oHAJK;;AASb,SAAavyB,iBAAb;AAAA;;;sHAAaA,mBAAiB;AAAAmF,mBAHXowD,0EAGW;AAHSxwD,cAL/B2qB,yDAK+B,EAJ/BC,2FAI+B,EAH/B42B,sFAG+B,EAF/Bh0B,oHAE+B,CAGT;AALDzhB,cAGfykD,0EAHe;AAKC;AAFI;;;;;;;;;;;;;;;;;;;;;ACflC;AACA;AAEA;AACA,CACA;AACA;;AAEO,IAAMI,aAAb;AAAM,QAAOA,aAAP,CAAoB;AAGU,WAAzBC,yBAAyB,CAACt+C,OAAD,EAAsC;AAClE,UAAIA,OAAO,IAAI,IAAX,IACG,EAAEA,OAAO,YAAY4d,WAArB,CADP,EAC0C;AACtC,eAAO,IAAP;AACH;;AACD,UAAI5d,OAAO,CAACu+C,YAAR,CAAqB,YAArB,KAAsCv+C,OAAO,CAACw+C,OAAR,KAAoB,sBAA9D,EAAsF;AAClF,eAAOx+C,OAAP;AACH;;AACD,aAAOq+C,aAAa,CAACC,yBAAd,CAAwCt+C,OAAO,CAACy+C,aAAhD,CAAP;AACH;;AACkB,WAAZC,YAAY,CAAC1+C,OAAD,EAAiC2+C,YAA6B,CAA9D,EAA+D;AAC9E;AACA,YAAMC,sBAAsB,GAAGP,aAAa,CAACC,yBAAd,CAAwCt+C,OAAxC,CAA/B;;AACA,UAAI4+C,sBAAsB,IAAI,IAA9B,EAAoC;AAChC,cAAM,IAAI7mD,KAAJ,CAAU,0BAAV,CAAN;AACH;;AAED,UAAI8mD,iBAAiB,GAAGD,sBAAsB,CAACE,YAAvB,CAAoC,YAApC,CAAxB;;AACA,UAAI,CAACD,iBAAL,EAAwB;AACpBA,yBAAiB,GAAGj/C,+CAAA,EAApB;AACAg/C,8BAAsB,CAACjoD,YAAvB,CAAoC,YAApC,EAAkDkoD,iBAAlD;AACH;;AAED,UAAIR,aAAa,CAACU,gBAAd,CAA+BF,iBAA/B,KAAqD,IAAzD,EAA+D;AAC3DR,qBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,EAAkD54D,WAAlD;AACAo4D,qBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,IAAoD,IAApD;AACA,eAAOR,aAAa,CAACU,gBAAd,CAA+BF,iBAA/B,CAAP;AACH,OAjB6E,CAoB9E;;;AACA,YAAMG,aAAa,GAAGJ,sBAAsB,CAACK,qBAAvB,EAAtB,CArB8E,CAsB9E;AACA;;AAGA,UAAIC,UAAU,GAAWC,UAAU,CAACR,SAAS,CAACrpE,QAAV,EAAD,CAAnC;;AACA,UAAIqpE,SAAS,CAACrpE,QAAV,GAAqBub,OAArB,CAA6B,GAA7B,IAAoC,CAAC,CAAzC,EAA4C;AACxCquD,kBAAU,GAAGA,UAAU,GAAG,IAA1B;AACH;;AAED,UAAI,IAAIA,UAAJ,IAAkBA,UAAU,GAAG,CAAnC,EAAsC;AAClCA,kBAAU,GAAGF,aAAa,CAAC98D,MAAd,GAAuBg9D,UAApC;AACH,OAjC6E,CAoC9E;AACA;AAEA;AACA;;;AAEA,YAAME,GAAG,GAAW,OAAO,EAA3B,CA1C8E,CA0C/C;;AAC/B,YAAMxnE,IAAI,GAAWymE,aAAa,CAACgB,UAAnC,CA3C8E,CA2C/B;;AAC/C,YAAMC,SAAS,GAAWpmE,IAAI,CAACu6D,IAAL,CAAU77D,IAAI,GAAGwnE,GAAjB,CAA1B,CA5C8E,CA4C7B;;AAEjD,YAAMG,MAAM,GAAmBnB,0CAAY,CAAC,GAAD,EAAM,GAAN,EAAW,CAAX,EAAc,CAAd,CAA3C;AACA,YAAMoB,eAAe,GAAGZ,sBAAsB,CAACa,SAA/C;AAEApB,mBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,IAAoDV,2CAAK,CAAC,CAAD,EAAIiB,GAAJ,CAAL,CAC/CpgE,IAD+C,CAE5CpC,mDAAG,CAAEnC,CAAD,IAAM;AACN,cAAMilE,UAAU,GAAG1/C,OAAO,CAACi/C,qBAAR,EAAnB;AACA,cAAMU,WAAW,GAAID,UAAU,CAAC9X,GAAX,GAAiBsX,UAAlB,GAAgCF,aAAa,CAACpX,GAAlE,CAFM,CAIN;;AACA,cAAMgY,OAAO,GAAInlE,CAAC,GAAG6kE,SAArB;AACA,cAAMO,IAAI,GAAGN,MAAM,CAACK,OAAD,CAAN,GAAkBD,WAA/B,CANM,CAON;;AACA,cAAMG,wBAAwB,GAAGlB,sBAAsB,CAACa,SAAvB,GAAmCI,IAApE,CARM,CASN;AACA;AACA;AACA;AACA;AACA;;AACAjB,8BAAsB,CAACmB,QAAvB,CAAgC;AAAEnY,aAAG,EAAEkY;AAAP,SAAhC;AACH,OAhBE,CAFyC,EAmB5CzxD,oDAAI,CAACixD,SAAD,CAnBwC,EAoB9C9gE,SApB8C,CAoBpC;AACR2E,gBAAQ,EAAE,MAAK;AACX,gBAAMu8D,UAAU,GAAG1/C,OAAO,CAACi/C,qBAAR,EAAnB;AACA,gBAAMU,WAAW,GAAID,UAAU,CAAC9X,GAAX,GAAiBsX,UAAlB,GAAgCF,aAAa,CAACpX,GAAlE,CAFW,CAGX;AACA;AACA;;AAEAgX,gCAAsB,CAACmB,QAAvB,CAAgC;AAAEnY,eAAG,EAAEgX,sBAAsB,CAACa,SAAvB,GAAmCE;AAA1C,WAAhC,EAPW,CAQX;;AACAtB,uBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,EAAkD54D,WAAlD;AACAo4D,uBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,IAAoD,IAApD;AACA,iBAAOR,aAAa,CAACU,gBAAd,CAA+BF,iBAA/B,CAAP;AACH;AAbO,OApBoC,CAApD;AAmCH;;AACc,WAARmB,QAAQ,CAAChgD,OAAD,EAAiC2+C,YAA6B,CAA9D,EAA+D;AAC1E;AACA,YAAMC,sBAAsB,GAAGP,aAAa,CAACC,yBAAd,CAAwCt+C,OAAxC,CAA/B;;AACA,UAAI4+C,sBAAsB,IAAI,IAA9B,EAAoC;AAChC,cAAM,IAAI7mD,KAAJ,CAAU,0BAAV,CAAN;AACH;;AAED,UAAI8mD,iBAAiB,GAAGD,sBAAsB,CAACE,YAAvB,CAAoC,YAApC,CAAxB;;AACA,UAAI,CAACD,iBAAL,EAAwB;AACpBA,yBAAiB,GAAGj/C,+CAAA,EAApB;AACAg/C,8BAAsB,CAACjoD,YAAvB,CAAoC,YAApC,EAAkDkoD,iBAAlD;AACH;;AAED,UAAIR,aAAa,CAACU,gBAAd,CAA+BF,iBAA/B,KAAqD,IAAzD,EAA+D;AAC3DR,qBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,EAAkD54D,WAAlD;AACAo4D,qBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,IAAoD,IAApD;AACA,eAAOR,aAAa,CAACU,gBAAd,CAA+BF,iBAA/B,CAAP;AACH,OAjByE,CAoB1E;;;AACA,YAAMG,aAAa,GAAGJ,sBAAsB,CAACK,qBAAvB,EAAtB,CArB0E,CAsB1E;;AACA,YAAMS,UAAU,GAAG1/C,OAAO,CAACi/C,qBAAR,EAAnB;;AAGA,UAAIC,UAAU,GAAWC,UAAU,CAACR,SAAS,CAACrpE,QAAV,EAAD,CAAnC;;AACA,UAAIqpE,SAAS,CAACrpE,QAAV,GAAqBub,OAArB,CAA6B,GAA7B,IAAoC,CAAC,CAAzC,EAA4C;AACxCquD,kBAAU,GAAGA,UAAU,GAAG,IAA1B;AACH;;AAED,UAAI,IAAIA,UAAJ,IAAkBA,UAAU,GAAG,CAAnC,EAAsC;AAClCA,kBAAU,GAAGF,aAAa,CAAC98D,MAAd,GAAuBg9D,UAApC;AACH,OAjCyE,CAoC1E;AACA;AAEA;;;AACA,YAAMS,WAAW,GAAID,UAAU,CAAC9X,GAAX,GAAiBsX,UAAlB,GAAgCF,aAAa,CAACpX,GAAlE;AAEA,YAAMwX,GAAG,GAAW,OAAO,EAA3B,CA1C0E,CA0C3C;;AAC/B,YAAMxnE,IAAI,GAAWymE,aAAa,CAACgB,UAAnC,CA3C0E,CA2C3B;;AAC/C,YAAMC,SAAS,GAAWpmE,IAAI,CAACu6D,IAAL,CAAU77D,IAAI,GAAGwnE,GAAjB,CAA1B,CA5C0E,CA4CzB;;AAEjD,YAAMG,MAAM,GAAmBnB,0CAAY,CAAC,GAAD,EAAM,GAAN,EAAW,CAAX,EAAc,CAAd,CAA3C;AACA,YAAMoB,eAAe,GAAGZ,sBAAsB,CAACa,SAA/C;AAEApB,mBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,IAAoDV,2CAAK,CAAC,CAAD,EAAIiB,GAAJ,CAAL,CAC/CpgE,IAD+C,CAE5CpC,mDAAG,CAAEnC,CAAD,IAAM;AACN;AACA;AAEA;AACA,cAAMmlE,OAAO,GAAInlE,CAAC,GAAG6kE,SAArB;AACA,cAAMO,IAAI,GAAGN,MAAM,CAACK,OAAD,CAAN,GAAkBD,WAA/B,CANM,CAON;;AACA,cAAMG,wBAAwB,GAAGN,eAAe,GAAGK,IAAnD,CARM,CASN;AACA;AACA;AACA;AACA;AACA;;AACAjB,8BAAsB,CAACmB,QAAvB,CAAgC;AAAEnY,aAAG,EAAEkY;AAAP,SAAhC;AACH,OAhBE,CAFyC,EAmB5CzxD,oDAAI,CAACixD,SAAD,CAnBwC,EAoB9C9gE,SApB8C,CAoBpC;AACR2E,gBAAQ,EAAE,MAAK;AACXy7D,gCAAsB,CAACmB,QAAvB,CAAgC;AAAEnY,eAAG,EAAE4X,eAAe,GAAGG;AAAzB,WAAhC;AACAtB,uBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,EAAkD54D,WAAlD;AACAo4D,uBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,IAAoD,IAApD;AACA,iBAAOR,aAAa,CAACU,gBAAd,CAA+BF,iBAA/B,CAAP;AACH;AANO,OApBoC,CAApD;AA4BH;;AACa,WAAPoB,OAAO,CAAChY,KAAD,EAAe0W,YAA6B,CAA5C,EAA6C;AACvD;AACA,UAAIuB,YAAY,GAAGjY,KAAK,CAACkY,cAAzB;;AACA,UAAI,EAAED,YAAY,YAAYtiC,WAA1B,CAAJ,EAA4C;AACxCsiC,oBAAY,GAAGA,YAAY,CAACzB,aAA5B;AACH;;AAED,YAAMG,sBAAsB,GAAGP,aAAa,CAACC,yBAAd,CAAwC4B,YAAxC,CAA/B;;AACA,UAAItB,sBAAsB,IAAI,IAA9B,EAAoC;AAChC,cAAM,IAAI7mD,KAAJ,CAAU,0BAAV,CAAN;AACH;;AAED,UAAI8mD,iBAAiB,GAAGD,sBAAsB,CAACE,YAAvB,CAAoC,YAApC,CAAxB;;AACA,UAAI,CAACD,iBAAL,EAAwB;AACpBA,yBAAiB,GAAGj/C,+CAAA,EAApB;AACAg/C,8BAAsB,CAACjoD,YAAvB,CAAoC,YAApC,EAAkDkoD,iBAAlD;AACH;;AAED,UAAIR,aAAa,CAACU,gBAAd,CAA+BF,iBAA/B,KAAqD,IAAzD,EAA+D;AAC3DR,qBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,EAAkD54D,WAAlD;AACAo4D,qBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,IAAoD,IAApD;AACA,eAAOR,aAAa,CAACU,gBAAd,CAA+BF,iBAA/B,CAAP;AACH,OAtBsD,CAyBvD;;;AACA,YAAMG,aAAa,GAAGJ,sBAAsB,CAACK,qBAAvB,EAAtB,CA1BuD,CA2BvD;;AACA,YAAMS,UAAU,GAAGzX,KAAK,CAACgX,qBAAN,EAAnB;;AAGA,UAAIC,UAAU,GAAWC,UAAU,CAACR,SAAS,CAACrpE,QAAV,EAAD,CAAnC;;AACA,UAAIqpE,SAAS,CAACrpE,QAAV,GAAqBub,OAArB,CAA6B,GAA7B,IAAoC,CAAC,CAAzC,EAA4C;AACxCquD,kBAAU,GAAGA,UAAU,GAAG,IAA1B;AACH;;AAED,UAAI,IAAIA,UAAJ,IAAkBA,UAAU,GAAG,CAAnC,EAAsC;AAClCA,kBAAU,GAAGF,aAAa,CAAC98D,MAAd,GAAuBg9D,UAApC;AACH,OAtCsD,CAyCvD;AACA;AAEA;;;AACA,YAAMS,WAAW,GAAID,UAAU,CAAC9X,GAAX,GAAiBsX,UAAlB,GAAgCF,aAAa,CAACpX,GAAlE;AAEA,YAAMwX,GAAG,GAAW,OAAO,EAA3B,CA/CuD,CA+CxB;;AAC/B,YAAMxnE,IAAI,GAAWymE,aAAa,CAACgB,UAAnC,CAhDuD,CAgDR;;AAC/C,YAAMC,SAAS,GAAWpmE,IAAI,CAACu6D,IAAL,CAAU77D,IAAI,GAAGwnE,GAAjB,CAA1B,CAjDuD,CAiDN;;AAEjD,YAAMG,MAAM,GAAmBnB,0CAAY,CAAC,GAAD,EAAM,GAAN,EAAW,CAAX,EAAc,CAAd,CAA3C;AACA,YAAMoB,eAAe,GAAGZ,sBAAsB,CAACa,SAA/C;AAEApB,mBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,IAAoDV,2CAAK,CAAC,CAAD,EAAIiB,GAAJ,CAAL,CAC/CpgE,IAD+C,CAE5CpC,mDAAG,CAAEnC,CAAD,IAAM;AAEN;AACA,cAAMmlE,OAAO,GAAInlE,CAAC,GAAG6kE,SAArB;AACA,cAAMO,IAAI,GAAGN,MAAM,CAACK,OAAD,CAAN,GAAkBD,WAA/B,CAJM,CAKN;;AACA,cAAMG,wBAAwB,GAAGN,eAAe,GAAGK,IAAnD;AACAjB,8BAAsB,CAACmB,QAAvB,CAAgC;AAAEnY,aAAG,EAAEkY;AAAP,SAAhC;AACH,OARE,CAFyC,EAW5CzxD,oDAAI,CAACixD,SAAD,CAXwC,EAY9C9gE,SAZ8C,CAYpC;AACR2E,gBAAQ,EAAE,MAAK;AACXy7D,gCAAsB,CAACmB,QAAvB,CAAgC;AAAEnY,eAAG,EAAE4X,eAAe,GAAGG;AAAzB,WAAhC;AACAtB,uBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,EAAkD54D,WAAlD;AACAo4D,uBAAa,CAACU,gBAAd,CAA+BF,iBAA/B,IAAoD,IAApD;AACA,iBAAOR,aAAa,CAACU,gBAAd,CAA+BF,iBAA/B,CAAP;AACH;AANO,OAZoC,CAApD;AAoBH;;AA1PqB;;AACfR,mCAAoD,EAApD;AACAA,6BAAqB,GAArB;AAFX,SAAaA,aAAb;AAAA;;;;;;;;;;;;;;;;;;;ACPA;;;;AAQO,IAAM+B,0BAAb;AAAM,QAAOA,0BAAP,CAAiC;AAMnCxkE,gBACY2wD,YADZ,EACkE;AAAtD;AALZ,sBAA4B,IAAIlpC,yCAAJ,EAA5B;AAMK;;AAEL/kB,YAAQ,IACP;;AACDgE,SAAK;AACD,WAAKiqD,YAAL,CAAkBjqD,KAAlB;AACH;;AACDu5B,WAAO;AACH,WAAKwkC,QAAL,CAAczgE,IAAd;AACH;;AAjBkC;;;qBAA1BwgE,4BAA0Bn5D,+DAAAA,CAAAA,kEAAAA;AAAA;;;UAA1Bm5D;AAA0Bl5D;AAAA8wB;AAAAC;AAAAC;AAAAC;AAAA;ACTvClxB,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AAC1BA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAsCA,QAAAA,wDAAAA;AAAA;AAAA;AAAtCA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AAEAA,QAAAA,4DAAAA;AAEIA,QAAAA,4DAAAA;AAA8DA,QAAAA,oDAAAA;AAAOA,QAAAA,0DAAAA;AACzEA,QAAAA,0DAAAA;AAEAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA4BA,QAAAA,wDAAAA;AAAA;AAAA;AAA5BA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AAEAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA4BA,QAAAA,wDAAAA;AAAA,iBAASG,aAAT;AAAkB,SAAlB;AAAoBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AAClDA,QAAAA,4DAAAA;AAA2BA,QAAAA,wDAAAA;AAAA,iBAASG,WAAT;AAAgB,SAAhB;AAAkBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AACnDA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;;;;AAxB0DA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAcVA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;;;;;;ADhBhD,SAAam5D,0BAAb;AAAA;;;;;;;;;;;;;;;;;;;AERA;AACA;AACA;;AAYO,IAAMz1D,uBAAb;AAAM,QAAOA,uBAAP,CAA8B;;;qBAAvBA;AAAuB;;;UAAvBA;;;cANA,CACLytB,yDADK,EAELrtB,uDAFK;;AAMb,SAAaJ,uBAAb;AAAA;;;sHAAaA,yBAAuB;AAAAkD,mBAPjBuyD,sFAOiB;AAPS3yD,cAErC2qB,yDAFqC,EAGrCrtB,uDAHqC,CAOT;AAJjByO,cAEL4mD,sFAFK;AAIiB;AAFI;;;;;;;;;;;;;;;ACblC,MAAOE,SAAP,CAAgB;AACU,SAArBC,qBAAqB,CAACt+D,OAAD,EAAe1G,GAAf,EAA0B;AAClD,UAAMilE,EAAE,GAAG,KAAKC,SAAL,CAAex+D,OAAf,CAAX;;AACA,QAAIu+D,EAAE,IAAI,IAAV,EAAgB;AAAE,aAAO,KAAP;AAAe;;AACjC,WAAOA,EAAE,GAAGjlE,GAAZ;AACH;;AACe,SAATklE,SAAS,CAACx+D,OAAD,EAAa;AACzB,QAAIA,OAAO,IAAI,IAAf,EAAqB;AACjB,aAAO,IAAP;AACH;;AACD,UAAMy+D,WAAW,GAAGz+D,OAAO,CAAC3M,QAAR,EAApB;;AACA,QAAIorE,WAAW,CAACpmE,MAAZ,KAAuB,CAA3B,EAA8B;AAC1B,aAAO,IAAP;AACH;;AACD,QAAIqmE,KAAK,CAACD,WAAD,CAAT,EAAwB;AACpB,aAAO,IAAP;AACH;;AACD,UAAMrrE,MAAM,GAAGqG,QAAQ,CAACglE,WAAD,EAAc,EAAd,CAAvB;AAEA,WAAOrrE,MAAP;AACH;;AApBiB;;;;;;;;;;;;;;;;;;;ACCtB;;;;AAQO,IAAMurE,+BAAb;AAAM,QAAOA,+BAAP,CAAsC;AAMxChlE,gBACY2wD,YADZ,EACuE;AAA3D;AALZ,sBAA4B,IAAIlpC,yCAAJ,EAA5B;AACA,kBAAe,EAAf;AAKK;;AAEL/kB,YAAQ,IACP;;AACDgE,SAAK;AACD,WAAKiqD,YAAL,CAAkBjqD,KAAlB;AACH;;AACDu5B,WAAO;AACH,WAAKwkC,QAAL,CAAczgE,IAAd,CAAmB,KAAKvF,IAAxB;AACH;;AAjBuC;;;qBAA/BumE,iCAA+B35D,+DAAAA,CAAAA,kEAAAA;AAAA;;;UAA/B25D;AAA+B15D;AAAA8wB;AAAAC;AAAAC;AAAAC;AAAA;ACT5ClxB,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAWA,QAAAA,0DAAAA;AACjCA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAgBA,QAAAA,0DAAAA;AACtCA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAaA,QAAAA,4DAAAA;AAAmBA,QAAAA,oDAAAA;AAAQA,QAAAA,0DAAAA;AAAOA,QAAAA,0DAAAA;AACrEA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AACtBA,QAAAA,uDAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA+CA,QAAAA,wDAAAA;AAAA;AAAA;AAA/CA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAA4BA,QAAAA,wDAAAA;AAAA,iBAASG,aAAT;AAAkB,SAAlB;AAAoBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AAClDA,QAAAA,4DAAAA;AAA2BA,QAAAA,wDAAAA;AAAA,iBAASG,WAAT;AAAgB,SAAhB;AAAkBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AACnDA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;;;;AAtBkEA,QAAAA,uDAAAA;AAAAA,QAAAA,+DAAAA;AAaCA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;;;;;;ADfnE,SAAa25D,+BAAb;AAAA;;;;;;;;;;;;;;;;;;;;AERA;AACA;AACA;AACA;;AAaO,IAAMp2D,4BAAb;AAAM,QAAOA,4BAAP,CAAmC;;;qBAA5BA;AAA4B;;;UAA5BA;;;cAPA,CACL4tB,yDADK,EAELjtB,qEAFK,EAGLJ,uDAHK;;AAOb,SAAaP,4BAAb;AAAA;;;sHAAaA,8BAA4B;AAAAqD,mBARtB+yD,iGAQsB;AARSnzD,cAE1C2qB,yDAF0C,EAG1CjtB,qEAH0C,EAI1CJ,uDAJ0C,CAQT;AAJtByO,cAELonD,iGAFK;AAIsB;AAFI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIrB35D,IAAAA,4DAAAA;AAIIA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA,aAASo4C,0CAAT;AAAyC,KAAzC,EAA0C,YAA1C,EAA0C;AAAA;AAAA;AAAA;AAAA;AAAA,KAA1C,EAA0C,YAA1C,EAA0C;AAAAp4C,MAAAA,2DAAAA;AAAA;AAAA,oCAEd,IAFc;AAEV,KAFhC;AAGAA,IAAAA,uDAAAA;AACAA,IAAAA,uDAAAA;AACAA,IAAAA,4DAAAA;AAAsBA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AACzCA,IAAAA,0DAAAA;;;;;;AATkCA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAOTA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,YAAAA,6DAAAA;AACCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AAU1BA,IAAAA,4DAAAA;AAGIA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA,aAAS61B,wCAAT;AAAsC,KAAtC,EAAuC,YAAvC,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA,KAAvC,EAAuC,YAAvC,EAAuC;AAAA71B,MAAAA,2DAAAA;AAAA;AAAA,qCAEX,IAFW;AAEP,KAFhC;AAGAA,IAAAA,uDAAAA;AACAA,IAAAA,uDAAAA;AACAA,IAAAA,4DAAAA;AAAsBA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AACzCA,IAAAA,0DAAAA;;;;;;AATsDA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAO7BA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,YAAAA,6DAAAA;AACCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;ACrC3C,IAAM45D,8BAAb;AAAM,QAAOA,8BAAP,CAAqC;AAkBvCjlE,gBACW6gC,SADX,EACkE;AAAvD;AAhBX,wBAAkC,EAAlC;AACA,mCAAoD,EAApD;AACA,gCAAiD,EAAjD;AAEA,+BAA6B,KAA7B;AAEA,uBAAqB,KAArB;AACA,4BAA0B,KAA1B;AACA,6BAA2B,KAA3B;AASK;;AAELn+B,YAAQ;AACJ,WAAK0gC,SAAL,GAAiB,KAAjB;AACH;;AACDp4B,cAAU;AACN,WAAK61B,SAAL,CAAen6B,KAAf;AACH;;AAEDw+D,4BAAwB,CAAChqC,MAAD,EAA0B;AAC9C,WAAKiqC,qBAAL,CAA2BjqC,MAAM,CAAChZ,SAAlC,IAA+C,CAAC,KAAKijD,qBAAL,CAA2BjqC,MAAM,CAAChZ,SAAlC,CAAhD;;AACA,UAAI,KAAKkjD,kBAAL,CAAwBlqC,MAAM,CAAChZ,SAA/B,CAAJ,EAA+C;AAC3C,aAAKkjD,kBAAL,CAAwBlqC,MAAM,CAAChZ,SAA/B,IAA4C,KAA5C;AACH;;AACD,WAAKkhB,SAAL,GAAiB,IAAjB;AACH;;AACDiiC,yBAAqB,CAACnqC,MAAD,EAA0B;AAC3C,WAAKkqC,kBAAL,CAAwBlqC,MAAM,CAAChZ,SAA/B,IAA4C,CAAC,KAAKkjD,kBAAL,CAAwBlqC,MAAM,CAAChZ,SAA/B,CAA7C;;AACA,UAAI,KAAKijD,qBAAL,CAA2BjqC,MAAM,CAAChZ,SAAlC,CAAJ,EAAkD;AAC9C,aAAKijD,qBAAL,CAA2BjqC,MAAM,CAAChZ,SAAlC,IAA+C,KAA/C;AACH;;AACD,WAAKkhB,SAAL,GAAiB,IAAjB;AACH;;AAEDkiC,wBAAoB,CAACC,MAAD,EAAc;AAC9B,UAAI,KAAKC,eAAT,EAA0B;AAAE;AAAS;;AACrC,WAAKC,sBAAL,CAA4B5lC,aAA5B,CAA0CgkC,SAA1C,GAAsD,KAAK6B,qBAAL,CAA2B7lC,aAA3B,CAAyCgkC,SAA/F;AACH;;AACD8B,uBAAmB,CAACJ,MAAD,EAAc;AAC7B,UAAI,KAAKK,cAAT,EAAyB;AAAE;AAAS;;AACpC,WAAKF,qBAAL,CAA2B7lC,aAA3B,CAAyCgkC,SAAzC,GAAqD,KAAK4B,sBAAL,CAA4B5lC,aAA5B,CAA0CgkC,SAA/F;AACH;;AAEDgC,UAAM;AACF,WAAK76D,UAAL;AACH;;AACD+wB,UAAM;AACF,UAAI,KAAK+pC,QAAT,EAAmB;AACf,aAAKA,QAAL;AACH;AACJ;;AACDC,uBAAmB;AACf,UAAI7vC,MAAM,CAACmtB,MAAP,CAAc,KAAK8hB,qBAAnB,EAA0ChmE,MAA1C,CAAiDC,CAAC,IAAIA,CAAtD,EAAyDV,MAAzD,GAAkE,CAAlE,IACGw3B,MAAM,CAACmtB,MAAP,CAAc,KAAK+hB,kBAAnB,EAAuCjmE,MAAvC,CAA8CC,CAAC,IAAIA,CAAnD,EAAsDV,MAAtD,GAA+D,CADtE,EACyE;AACrE,aAAK0kC,SAAL,GAAiB,IAAjB;AACH;;AACD,WAAK+hC,qBAAL,GAA6B,EAA7B;AACA,WAAKC,kBAAL,GAA0B,EAA1B;AACH;;AApEsC;;;qBAA9BH,gCAA8B55D,+DAAAA,CAAAA,kEAAAA;AAAA;;;UAA9B45D;AAA8B35D;AAAAo1B;AAAA;;;;;;;;;;;;;;;;;ADT3Cr1B,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAMA,QAAAA,0DAAAA;AACxBA,QAAAA,4DAAAA;AAA0BA,QAAAA,wDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AACtBH,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAQA,QAAAA,0DAAAA;AAC9BA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,uDAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAGA,QAAAA,0DAAAA;AACzBA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AAAyCA,QAAAA,wDAAAA;AAAA,sCAA6B,IAA7B;AAAiC,SAAjC,EAAkC,YAAlC,EAAkC;AAAA,sCAC1C,KAD0C;AACrC,SADG,EAAkC,QAAlC,EAAkC;AAAA,iBACzBG,gCADyB;AACG,SADrC;AAErCH,QAAAA,wDAAAA;AAWJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAkBA,QAAAA,oDAAAA;AAAIA,QAAAA,0DAAAA;AAC1BA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AAA0CA,QAAAA,wDAAAA;AAAA,uCAA8B,IAA9B;AAAkC,SAAlC,EAAmC,YAAnC,EAAmC;AAAA,uCAC3C,KAD2C;AACtC,SADG,EAAmC,QAAnC,EAAmC;AAAA,iBAC1BG,+BAD0B;AACC,SADpC;AAEtCH,QAAAA,wDAAAA;AAUJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AAAiEA,QAAAA,wDAAAA;AAAA,iBAASG,YAAT;AAAiB,SAAjB;AAAmBH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AACtFA,QAAAA,4DAAAA;AAA2BA,QAAAA,wDAAAA;AAAA,iBAASG,yBAAT;AAA8B,SAA9B;AAAgCH,QAAAA,oDAAAA;AAAEA,QAAAA,0DAAAA;AACjEA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;;;;AArC2CA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AAkBoBA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA;AActBA,QAAAA,uDAAAA;AAAAA,QAAAA,wDAAAA,YAAAA,6DAAAA;;;;;;AC3CzC,SAAa45D,8BAAb;AAAA;;;;;;;;;;;;;;;;;;ACRA;AACA;;AAWO,IAAM90D,2BAAb;AAAM,QAAOA,2BAAP,CAAkC;;;qBAA3BA;AAA2B;;;UAA3BA;;;cALA,CACLqsB,yDADK;;AAKb,SAAarsB,2BAAb;AAAA;;;sHAAaA,6BAA2B;AAAA8B,mBANrBgzD,+FAMqB;AANSpzD,cAEzC2qB,yDAFyC,CAMT;AAJpB5e,cAENqnD,+FAFM;AAIoB;AAFI;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX5C;AACA;AAIA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACOoB55D,IAAAA,6DAAAA;AAEIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA,aAAS41B,qDAAT;AAAgD,KAAhD;AAAkD51B,IAAAA,qDAAAA;AAAEA,IAAAA,2DAAAA;;;;;AADpDA,IAAAA,yDAAAA,YAAAA,8DAAAA;;;;;;;;AAEJA,IAAAA,6DAAAA;AAEIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA,aAASq9C,wDAAT;AAAmD,KAAnD;AAAqDr9C,IAAAA,qDAAAA;AAAEA,IAAAA,2DAAAA;;;;;AADvDA,IAAAA,yDAAAA,YAAAA,8DAAAA;;;;;;AASRA,IAAAA,wDAAAA;;;;;;AACAA,IAAAA,wDAAAA;;;;;;;;AAegBA,IAAAA,6DAAAA;AACIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA,aAASqmD,uBAAT;AAAwB,KAAxB;AACArmD,IAAAA,6DAAAA;AAAkBA,IAAAA,qDAAAA;AAAEA,IAAAA,2DAAAA;AACxBA,IAAAA,2DAAAA;;;;;;;;AAKAA,IAAAA,6DAAAA;AACIA,IAAAA,yDAAAA;AAAAA,MAAAA,4DAAAA;AAAA;AAAA,aAAS86D,0BAAT;AAA2B,KAA3B;AACA96D,IAAAA,6DAAAA;AAAkBA,IAAAA,qDAAAA;AAAEA,IAAAA,2DAAAA;AACxBA,IAAAA,2DAAAA;;;;;;;;;;ADrCzB,IAAM+6D,oBAAb;AAAM,QAAOA,oBAAP,SAAoCpnC,6DAApC,CAA6C;AAC/Ch/B,gBACIqmE,kBADJ,EAEY5mC,mBAFZ,EAEoD;AAEhD;AAFQ;AAiBZ,2BAAmC,EAAnC;AAIU,oBAA0C,IAAIH,wDAAJ,EAA1C,CArB0C,CAwBpD;AAEA;AACA;;AACA,4BAA0B,KAA1B;AACA,gCAA0B2mC,qEAA1B,CA7BoD,CA+BpD;;AACA,4BAA0B,IAA1B;AACA,+BAA6B,IAA7B;AACA,8BAA4B,KAA5B;AACA,+BAA6B,KAA7B;AA/BI,WAAKI,kBAAL,GAA0BA,kBAA1B;AACH,KAR8C,CAU/C;;;AACgB,QAAZC,YAAY;AAAyB,aAAO,KAAKD,kBAAL,CAAwBC,YAA/B;AAA8C,KAXxC,CAa/C;;;AACoB,QAAhB/P,gBAAgB;AAAe,aAAO,KAAK8P,kBAAL,CAAwB9P,gBAA/B;AAAkD,KAdtC,CAcuD;;;AAC/E,QAAnBG,mBAAmB;AAAkB,aAAO,KAAK2P,kBAAL,CAAwB3P,mBAA/B;AAAqD,KAf/C,CAe0D;;;AAyBzGh0D,YAAQ;AACJ;AACA,WAAK4vD,aAAL,CAAmBiE,gBAAnB,GAAsC,KAAK8P,kBAAL,CAAwBE,iBAAxB,CAA0C3jE,SAA1C,CAAoDqX,CAAC,IAAG;AAC1F;AACAte,eAAO,CAACC,GAAR,CAAY,wCAAZ,EAF0F,CAI1F;AACA;AACH,OANqC,CAAtC,CAFI,CASJ;;AACA,WAAK02D,aAAL,CAAmBoE,mBAAnB,GAAyC,KAAK2P,kBAAL,CAAwBG,oBAAxB,CAA6C5jE,SAA7C,CAAuDqX,CAAC,IAAG,CAChG;AACA;AAEA;AAGA;AACA;AACH,OATwC,CAAzC;AAUH;;AACD2qC,eAAW;AACP6M,MAAAA,mGAAA,CAAiC,KAAKa,aAAtC;AACH;;AAGD5yB,aAAS,CACL96B,IADK,EAEL2xD,gBAFK,EAGLG,mBAHK,EAIL+P,gBAJK,EAKLC,mBALK,EAML/9C,wBANK,EAOLG,2BAPK,EAOiD;AAGtD,WAAKu9C,kBAAL,CAAwBC,YAAxB,GAAuC1hE,IAAvC;AACA,WAAKyhE,kBAAL,CAAwBM,sBAAxB,GAAiDpQ,gBAAjD;AACA,WAAK8P,kBAAL,CAAwBO,yBAAxB,GAAoDlQ,mBAApD;AACA,WAAK2P,kBAAL,CAAwB9P,gBAAxB,GAA2CA,gBAA3C;AACA,WAAK8P,kBAAL,CAAwB3P,mBAAxB,GAA8CA,mBAA9C;AACA,WAAK2P,kBAAL,CAAwBI,gBAAxB,GAA2CA,gBAA3C;AACA,WAAKJ,kBAAL,CAAwBK,mBAAxB,GAA8CA,mBAA9C;AACA,WAAKL,kBAAL,CAAwB19C,wBAAxB,GAAmDA,wBAAnD;AACA,WAAK09C,kBAAL,CAAwBv9C,2BAAxB,GAAsDA,2BAAtD;AAEA,WAAKu9C,kBAAL,CAAwBlJ,aAAxB,GAbsD,CAgBtD;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACH;;AACDnyD,cAAU;AACN,WAAKg+C,cAAL,GAAsB,KAAtB;AACA,WAAKvpB,mBAAL,CAAyBU,cAAzB,CAAwC,KAAKC,YAA7C;AACH,KAvG8C,CAwG/C;;;AAC8CI,aAAS,CAAC34B,EAAD,EAAkB;AACrE,UAAIA,EAAE,CAACy4B,OAAH,KAAe,EAAf,IAAqB,CAAC,KAAKb,mBAAL,CAAyBe,SAAzB,EAA1B,EAAgE;AAC5D,aAAKx1B,UAAL;AACH;AACJ;;AAGD82B,6BAAyB,CAACj6B,EAAD,EAAUsqB,SAAV,EAA2B;AAChD,YAAMta,IAAI,GAAGhQ,EAAE,CAACgQ,IAAH,IAAYhQ,EAAE,CAACk6B,YAAH,IAAmBl6B,EAAE,CAACk6B,YAAH,EAA5C;AAEA,aAAOlqB,IAAI,CAAC1Y,MAAL,CAAYkiB,CAAC,IAAIA,CAAC,YAAY2gB,WAA9B,EAA2CC,IAA3C,CAAiD5gB,CAAD,IAAe;AAClE,eAAOA,CAAC,CAAC6gB,SAAF,CAAYC,QAAZ,CAAqBhQ,SAArB,CAAP;AACH,OAFM,CAAP;AAGH;;AAC2Cg5B,aAAS,CAACtjD,EAAD,EAAe;AAChE,UAAI,KAAKi6B,yBAAL,CAA+Bj6B,EAA/B,EAAmC,cAAnC,KACG,KAAKi6B,yBAAL,CAA+Bj6B,EAA/B,EAAmC,kBAAnC,CADP,EAC+D;AAC3D,aAAKmD,UAAL;AACH;AACJ,KA5H8C,CA+H/C;;;AACAkgD,cAAU,CAACtmD,IAAD,EAAyB;AAC/B,WAAKyhE,kBAAL,CAAwBC,YAAxB,GAAuC1hE,IAAvC;AACH,KAlI8C,CAoI/C;;;AACA44D,wBAAoB,CAACz8C,QAAD,EAAmB;AACnC,aAAOd,qEAAA,CAAsBc,QAAtB,CAAP;AACH;;AACD6gD,2BAAuB,CAAC1gD,WAAD,EAAyB;AAC5C,aAAOlB,2EAAA,CAAyBkB,WAAzB,CAAP;AACH,KA1I8C,CA4I/C;;;AACA2lD,kBAAc,CAAC9lD,QAAD,EAAmB;AAC7B,YAAM+lD,EAAE,GAAG,KAAKT,kBAAL,CAAwBz9C,YAAxB,CAAqC0Z,IAArC,CAA0CljC,CAAC,IAAIA,CAAC,CAACX,IAAF,KAAWsiB,QAAQ,CAACtiB,IAAnE,CAAX;AACA,aAAOqoE,EAAE,IAAI,IAAb;AACH,KAhJ8C,CAiJ/C;;;AACAC,qBAAiB,CAAC7lD,WAAD,EAAyB;AACtC,YAAM8lD,GAAG,GAAG,KAAKX,kBAAL,CAAwBt9C,eAAxB,CAAwCuZ,IAAxC,CAA6CljC,CAAC,IAAIA,CAAC,CAAC4hB,aAAF,KAAoBE,WAAW,CAACF,aAAhC,IAAiD5hB,CAAC,CAACX,IAAF,KAAWyiB,WAAW,CAACziB,IAA1H,CAAZ;AACA,aAAOuoE,GAAG,IAAI,IAAd;AACH,KArJ8C,CAuJ/C;;;AACAC,iBAAa;AACT,WAAKxJ,cAAL,CAAoBx9C,oEAApB;AACA,WAAKinD,mBAAL;AACH;;AACDC,oBAAgB;AACZ;AACA,WAAK5G,iBAAL,CAAuBvgD,6EAAvB;AACA,WAAKknD,mBAAL;AACH;;AACDE,YAAQ;AACJ,WAAKf,kBAAL,CAAwB9P,gBAAxB,GAA2Ct2C,oEAA3C;AACA,WAAKomD,kBAAL,CAAwB3P,mBAAxB,GAA8C12C,6EAA9C;AACA,WAAKqmD,kBAAL,CAAwBlJ,aAAxB;AACA,WAAK+J,mBAAL,GAJI,CAMJ;AACA;AACA;AACA;AACH;;AACDA,uBAAmB;AACf,UAAI,KAAKG,iBAAT,EAA4B;AACxB,aAAKA,iBAAL,CAAuB3K,UAAvB,CAAkCC,YAAlC,GAAiD,CAAjD;AACA,aAAK0K,iBAAL,CAAuB3K,UAAvB,CAAkCU,MAAlC,CACI,KAAKiJ,kBAAL,CAAwBnJ,qBAAxB,GACI,KAAKmJ,kBAAL,CAAwBz9C,YAAxB,CAAqClqB,MADzC,GAEI,KAAK2nE,kBAAL,CAAwB7L,kBAAxB,CAA2C97D,MAHnD,EAII,KAAK2nE,kBAAL,CAAwBz9C,YAAxB,CAAqClqB,MAJzC,EAKI,KAAK2oE,iBAAL,CAAuB/J,iBAL3B;AAOH,OATD,MASO,IAAI,KAAKgK,oBAAT,EAA+B;AAClC,aAAKA,oBAAL,CAA0B5K,UAA1B,CAAqCC,YAArC,GAAoD,CAApD;AACA,YAAI4K,YAAY,GAAW,CAA3B;;AACA,YAAI,KAAKlB,kBAAL,CAAwBrH,wBAA5B,EAAsD;AAClDuI,sBAAY,GAAG,KAAKlB,kBAAL,CAAwBt9C,eAAxB,CAAwCrqB,MAAvD;AACH,SAFD,MAEO,IAAI,KAAK2nE,kBAAL,CAAwB3P,mBAA5B,EAAiD;AACpD6Q,sBAAY,GAAG,KAAKlB,kBAAL,CAAwBt9C,eAAxB,CAAwCrqB,MAAxC,GAAiD,CAAhE;AACH,SAFM,MAEA;AACH6oE,sBAAY,GAAG,KAAKlB,kBAAL,CAAwB5L,qBAAxB,CAA8C/7D,MAA7D;AACH;;AACD,aAAK4oE,oBAAL,CAA0B5K,UAA1B,CAAqCU,MAArC,CAA4CmK,YAA5C,EACI,KAAKlB,kBAAL,CAAwBt9C,eAAxB,CAAwCrqB,MAD5C,EAEI,KAAK4oE,oBAAL,CAA0BhK,iBAF9B;AAIH;AACJ,KArM8C,CAwM/C;;;AACAG,kBAAc,CAAC18C,QAAD,EAAmB;AAC7B,WAAKslD,kBAAL,CAAwB5I,cAAxB,CAAuC18C,QAAvC;AACH;;AACDw/C,qBAAiB,CAACr/C,WAAD,EAAyB;AACtC,WAAKmlD,kBAAL,CAAwB9F,iBAAxB,CAA0Cr/C,WAA1C;AACH,KA9M8C,CAoN/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AASA;;;AACAsmD,iBAAa;AACT,aAAO,KAAKjR,gBAAL,KAA0B,KAAK8P,kBAAL,CAAwBM,sBAAlD,IACA,KAAKjQ,mBAAL,KAA6B,KAAK2P,kBAAL,CAAwBO,yBAD5D,CADS,CAGT;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACH;;AACDve,eAAW;AACP,YAAM5uD,MAAM,GAAG,IAAIysE,oEAAJ,EAAf;AACAzsE,YAAM,CAACsnB,QAAP,GAAkB,KAAKw1C,gBAAvB;AACA98D,YAAM,CAACynB,WAAP,GAAqB,KAAKw1C,mBAA1B;AACA,WAAK36B,MAAL,CAAYmE,IAAZ,CAAiBzmC,MAAjB,EAJO,CAMP;AACH;;AA7Q8C;;;qBAAtC2sE,sBAAoB/6D,gEAAAA,CAAAA,qEAAAA,GAAAA,gEAAAA,CAAAA,qFAAAA;AAAA;;;UAApB+6D;AAAoB96D;AAAAo1B;AAAA;;;;;;;;;;;;;;;iBAApBl1B;AAAiB;AAAA,iBAAjBA,qBAAiB;AAAA;;;;;;iFAFf,CAACw6D,qEAAD,IAAoB36D,yEAAAA;AAAA+wB;AAAAC;AAAAC;AAAAC;AAAA;AChBnClxB,QAAAA,6DAAAA;AACIA,QAAAA,wDAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AAAkCA,QAAAA,yDAAAA;AAAA,iBAASG,gBAAT;AAAqB,SAArB;AAAuBH,QAAAA,2DAAAA;AACzDA,QAAAA,6DAAAA;AACIA,QAAAA,wDAAAA;AACAA,QAAAA,6DAAAA;AAAkBA,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AAK1BA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,yDAAAA;AAGAA,QAAAA,yDAAAA;AASJA,QAAAA,2DAAAA;AACAA,QAAAA,yDAAAA;AACAA,QAAAA,yDAAAA;AAKJA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AAAmBA,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AACvBA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AAAmBA,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AACvBA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AAA0BA,QAAAA,yDAAAA;AAAA,iBAASG,+CAAT;AAAgD,SAAhD;AACtBH,QAAAA,wDAAAA;AACAA,QAAAA,6DAAAA;AAAkBA,QAAAA,qDAAAA;AAAyBA,QAAAA,2DAAAA;AAC3CA,QAAAA,yDAAAA;AAIJA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AAA6BA,QAAAA,yDAAAA;AAAA,iBAASG,kDAAT;AAAmD,SAAnD;AACzBH,QAAAA,wDAAAA;AACAA,QAAAA,6DAAAA;AAAkBA,QAAAA,qDAAAA;AAA4BA,QAAAA,2DAAAA;AAC9CA,QAAAA,yDAAAA;AAIJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AA8DJA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AACIA,QAAAA,6DAAAA;AAAoEA,QAAAA,yDAAAA;AAAA,iBAASG,iBAAT;AAAsB,SAAtB;AAAwBH,QAAAA,qDAAAA;AAC5FA,QAAAA,2DAAAA;AACAA,QAAAA,6DAAAA;AAAuBA,QAAAA,yDAAAA;AAAA,iBAASG,cAAT;AAAmB,SAAnB;AAAqBH,QAAAA,qDAAAA;AAAIA,QAAAA,2DAAAA;AACpDA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;AACJA,QAAAA,2DAAAA;;;;AA9H+BA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AAYYA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AAGGA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AAUeA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AACMA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AAajBA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AACAA,QAAAA,wDAAAA;AAAAA,QAAAA,gEAAAA;AACSA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AAMTA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AACAA,QAAAA,wDAAAA;AAAAA,QAAAA,gEAAAA;AACSA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA;AAsEXA,QAAAA,wDAAAA;AAAAA,QAAAA,yDAAAA,YAAAA,8DAAAA;;;;;;ADxGhD,SAAa+6D,oBAAb;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AElBA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAEA;;AAgCO,IAAMr5D,iBAAb;AAAM,QAAOA,iBAAP,CAAwB;;;qBAAjBA;AAAiB;;;UAAjBA;;;cA5BA,CACLyvB,yDADK,EAELrtB,uDAFK,EAGLwxB,+DAHK,EAIL8mC,oGAJK,EAKLC,6GALK,EAMLC,4GANK,EAOLC,+GAPK,EAQLnrC,2FARK,EASL4C,oHATK,GAmBLlwB,uDAAWA,EACXwxB,+DAAmBA,EACnB8mC,oGAAuBA,EACvBC,6GAA0BA,EAC1BC,4GAAyBA,EACzBC,+GAA0BA,EAC1BnrC,2FAAoBA;;AAG5B,SAAa1vB,iBAAb;AAAA;;;sHAAaA,mBAAiB;AAAAkF,mBAbtBm0D,yEAasB;AAbFv0D,cAdpB2qB,yDAcoB,EAbpBrtB,uDAaoB,EAZpBwxB,+DAYoB,EAXpB8mC,oGAWoB,EAVpBC,6GAUoB,EATpBC,4GASoB,EARpBC,+GAQoB,EAPpBnrC,2FAOoB,EANpB4C,oHAMoB,CAaE;AAnBDzhB,cASrBwoD,yEATqB,EAUrBj3D,uDAVqB,EAWrBwxB,+DAXqB,EAYrB8mC,oGAZqB,EAarBC,6GAbqB,EAcrBC,4GAdqB,EAerBC,+GAfqB,EAgBrBnrC,2FAhBqB;AAmBC;AAHF;;;;;;;;;;;;;;;;;;;;;;ACxC5B;AAMA;AACA;;AAEO,IAAKwpC,kBAKX;AALD,aAAYA,kBAAZ,EAA8B;AAC1BA;AACAA;AACAA;AACAA;AACH,GALD,EAAYA,kBAAkB,KAAlBA,kBAAkB,MAA9B,CAKC;;AAAA,SALWA,kBAKX;AAAA,IALD;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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AL,CAAgBC,YAAhB,GAA+B,CAAhC,IAAqC,KAAKW,iBAA5D,CADY,CAGZ;;AACA,UAAI,KAAK+I,kBAAL,CAAwBrH,wBAA5B,EAAsD;AAClD,aAAKjH,OAAL,GAAe,CAAC,KAAK2E,UAAL,CAAgBC,YAAhB,GAA+B,CAAhC,IAAqC,KAAKW,iBAA1C,GAA8D,CAA7E;AACH,OAFD,MAEO;AACH;AACA,aAAKvF,OAAL,GAAe,CAAC,KAAK2E,UAAL,CAAgBC,YAAhB,GAA+B,CAAhC,IAAqC,KAAKW,iBAA1C,GAA8D,CAA7E;AACH;AACJ,KApHqC,CAyHtC;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;;;AAEAsE,2BAAuB,CAAC1gD,WAAD,EAAyB;AAC5C,aAAOlB,2EAAA,CAAyBkB,WAAzB,CAAP;AACH,KAtQqC,CAwQtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;;;AAEAq/C,qBAAiB,CAACr/C,WAAD,EAAyB;AACtC,WAAKmlD,kBAAL,CAAwB9F,iBAAxB,CAA0Cr/C,WAA1C;AAEA,UAAIqmD,YAAY,GA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AIkB;AAFE;;;;;;;;;;;;;;;;;;;ACF7B,IAAMC,uBAAb;AAAM,QAAOA,uBAAP,CAA8B;AAEhCt9I,mBAAiB;;AAEjB0C,YAAQ,IAAY;;AAJY;;;qBAAvB46I;AAAuB;;;UAAvBA;AAAuBhyI;AAAAiyI;AAAAnhH;AAAAC;AAAAC;AAAAC;AAAA;;ACTpClxB,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,4DAAAA;AACIA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACAA,QAAAA,4DAAAA;AACIA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;AACJA,QAAAA,0DAAAA;;;;;ADAA,SAAaiyI,uBAAb;AAAA;;;;;;;;;;;;;;;;;;AERA;AACA;;AASO,IAAMl+G,oBAAb;AAAM,QAAOA,oBAAP,CAA2B;;;qBAApBA;AAAoB;;;UAApBA;;;cALA,CACL5C,yDADK;;AAKb,SAAa4C,oBAAb;AAAA;;;sHAAaA,sBAAoB;AAAAntB,mBANdqrI,gFAMc;AANSzrI,cAElC2qB,yDAFkC,CAMT;AAJb5e,cAEN0/H,gFAFM;AAIa;AAFI;;;;;;;;;;ACTrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./projects/desktop/src/app/app-common-static.ts","./projects/desktop/src/app/app-common.service.ts","./projects/desktop/src/app/app-config.service.ts","./projects/desktop/src/app/app.component.ts","./projects/desktop/src/app/app.component.html","./projects/desktop/src/app/app.module.ts","./projects/desktop/src/app/app.service.ts","./projects/desktop/src/app/root-routing.module.ts","./projects/desktop/src/app/root/root-apply-member/job-id.enum.ts","./projects/desktop/src/app/root/root-apply-member/register-type.enum.ts","./projects/desktop/src/app/root/root-apply-member/root-apply-member.service.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/indictment-court-id.enum.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-court-id.enum.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-type.enum.ts","./projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-result/judgment-search-result-type.enum.ts","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-case-type.enum.ts","./projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-court-id.enum.ts","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/law-rule-category-icon.enum.ts","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/law-rule-category.ts","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/law-rule-exam-index.ts","./projects/desktop/src/app/root/root-main/child-content-law-rule-search/law-rule-exam-title-color.enum.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/filter-condition.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/bookmark-type.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/case-tag-update-request.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/case-tag.service.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment-case.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment-property.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment.service.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/note-summary-list-type.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-case-list.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-case.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-court-count.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-property-icon.enum.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-property.enum.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-type.enum.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret.service.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/law-rule-case.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/law-rule-type.enum.ts","./projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/law-rule.service.ts","./projects/desktop/src/app/root/root-main/comment.service.ts","./projects/desktop/src/app/root/root-main/root-main.service.ts","./projects/desktop/src/app/root/root-management/root-management.service.ts","./projects/desktop/src/app/root/root-password-change/root-password-change.component.ts","./projects/desktop/src/app/root/root-password-change/root-password-change.component.html","./projects/desktop/src/app/root/root-password-change/root-password-change.module.ts","./projects/desktop/src/app/root/root-password-change/root-password-change.service.ts","./projects/desktop/src/environments/environment.ts","./projects/desktop/src/main.ts","./projects/lwlib/src/action-name.ts","./projects/lwlib/src/base-popup/base-popup.ts","./projects/lwlib/src/block-guest-function-popup/block-guest-function-popup.component.ts","./projects/lwlib/src/block-guest-function-popup/block-guest-function-popup.component.html","./projects/lwlib/src/block-guest-function-popup/block-guest-function-popup.module.ts","./projects/lwlib/src/bookmark-rename-popup/bookmark-rename-popup.component.ts","./projects/lwlib/src/bookmark-rename-popup/bookmark-rename-popup.component.html","./projects/lwlib/src/bookmark-rename-popup/bookmark-rename-popup.module.ts","./projects/lwlib/src/case-duplicate-warning-popup/case-duplicate-warning-popup.component.ts","./projects/lwlib/src/case-duplicate-warning-popup/case-duplicate-warning-popup.component.html","./projects/lwlib/src/case-duplicate-warning-popup/case-duplicate-warning-popup.module.ts","./projects/lwlib/src/case-property/case-property.component.html","./projects/lwlib/src/case-property/case-property.component.ts","./projects/lwlib/src/case-property/case-property.module.ts","./projects/lwlib/src/case-tag-popup/case-tag-popup.component.ts","./projects/lwlib/src/case-tag-popup/case-tag-popup.component.html","./projects/lwlib/src/case-tag-popup/case-tag-popup.module.ts","./projects/lwlib/src/case-type/case-name.ts","./projects/lwlib/src/case-type/case-type-id.enum.ts","./projects/lwlib/src/case-type/case-type.ts","./projects/lwlib/src/case-type/court-block-id.enum.ts","./projects/lwlib/src/case-type/court-block.ts","./projects/lwlib/src/case-type/court-id.enum.ts","./projects/lwlib/src/case-type/court-type-id.enum.ts","./projects/lwlib/src/case-type/court-type.ts","./projects/lwlib/src/case-type/court.ts","./projects/lwlib/src/case-type/property-id.enum.ts","./projects/lwlib/src/category/category-type-id.enum.ts","./projects/lwlib/src/category/category.ts","./projects/lwlib/src/category/category2.ts","./projects/lwlib/src/category/subcategory-type-id.enum.ts","./projects/lwlib/src/category/subcategory.ts","./projects/lwlib/src/category/subcategory2.ts","./projects/lwlib/src/check-in/check-in-judgment.ts","./projects/lwlib/src/check-in/check-in-law-article.ts","./projects/lwlib/src/checkin-team-filter-popup/checkin-team-filter-popup.component.ts","./projects/lwlib/src/checkin-team-filter-popup/checkin-team-filter-popup.component.html","./projects/lwlib/src/checkin-team-filter-popup/checkin-team-filter-popup.module.ts","./projects/lwlib/src/choose-kind/choose-kind-item.directive.ts","./projects/lwlib/src/choose-kind/choose-kind.component.ts","./projects/lwlib/src/choose-kind/choose-kind.component.html","./projects/lwlib/src/choose-kind/choose-kind.module.ts","./projects/lwlib/src/comment-popup/comment-popup-opener.service.ts","./projects/lwlib/src/comment-popup/comment-popup.component.ts","./projects/lwlib/src/comment-popup/comment-popup.component.html","./projects/lwlib/src/comment-popup/comment-popup.module.ts","./projects/lwlib/src/complete-search-popup/complete-search-popup.component.ts","./projects/lwlib/src/complete-search-popup/complete-search-popup.component.html","./projects/lwlib/src/complete-search-popup/complete-search-popup.module.ts","./projects/lwlib/src/complete-search-tip-popup/complete-search-tip-popup.component.ts","./projects/lwlib/src/complete-search-tip-popup/complete-search-tip-popup.component.html","./projects/lwlib/src/complete-search-tip-popup/complete-search-tip-popup.module.ts","./projects/lwlib/src/compose-command/compose-command.component.ts","./projects/lwlib/src/compose-command/compose-command.component.html","./projects/lwlib/src/compose-command/compose-command.module.ts","./projects/lwlib/src/compose-command/compse-command-style-type.enum.ts","./projects/lwlib/src/compose-search-popup/compose-search-popup.component.ts","./projects/lwlib/src/compose-search-popup/compose-search-popup.component.html","./projects/lwlib/src/compose-search-popup/compose-search-popup.module.ts","./projects/lwlib/src/compose-search-popup/compose-type.ts","./projects/lwlib/src/compose-search-popup/input-text.ts","./projects/lwlib/src/concat-popup/concat-popup.component.ts","./projects/lwlib/src/concat-popup/concat-popup.component.html","./projects/lwlib/src/concat-popup/concat-popup.module.ts","./projects/lwlib/src/confirm-popup/confirm-popup.component.html","./projects/lwlib/src/confirm-popup/confirm-popup.component.ts","./projects/lwlib/src/confirm-popup/confirm-popup.module.ts","./projects/lwlib/src/contact-support-popup/contact-support-popup.component.ts","./projects/lwlib/src/contact-support-popup/contact-support-popup.component.html","./projects/lwlib/src/contact-support-popup/contact-support-popup.module.ts","./projects/lwlib/src/create-category-popup2/create-category-popup2.component.ts","./projects/lwlib/src/create-category-popup2/create-category-popup2.component.html","./projects/lwlib/src/create-category-popup2/create-category-popup2.module.ts","./projects/lwlib/src/create-category-popup/create-category-popup-opener.service.ts","./projects/lwlib/src/create-category-popup/create-category-popup.component.ts","./projects/lwlib/src/create-category-popup/create-category-popup.component.html","./projects/lwlib/src/create-category-popup/create-category-popup.module.ts","./projects/lwlib/src/create-subcategory-popup/create-subcategory-popup-opener.service.ts","./projects/lwlib/src/create-subcategory-popup/create-subcategory-popup.component.ts","./projects/lwlib/src/create-subcategory-popup/create-subcategory-popup.component.html","./projects/lwlib/src/create-subcategory-popup/create-subcategory-popup.module.ts","./projects/lwlib/src/danger-warning-popup/danger-warning-popup-opener.service.ts","./projects/lwlib/src/danger-warning-popup/danger-warning-popup.component.ts","./projects/lwlib/src/danger-warning-popup/danger-warning-popup.component.html","./projects/lwlib/src/danger-warning-popup/danger-warning-popup.module.ts","./projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-opener.service.ts","./projects/lwlib/src/delete-confirm-popup/delete-confirm-popup-type.ts","./projects/lwlib/src/delete-confirm-popup/delete-confirm-popup.component.ts","./projects/lwlib/src/delete-confirm-popup/delete-confirm-popup.component.html","./projects/lwlib/src/delete-confirm-popup/delete-confirm-popup.module.ts","./projects/lwlib/src/disconnected-popup/disconnected-popup-opener.service.ts","./projects/lwlib/src/disconnected-popup/disconnected-popup.component.ts","./projects/lwlib/src/disconnected-popup/disconnected-popup.component.html","./projects/lwlib/src/disconnected-popup/disconnected-popup.module.ts","./projects/lwlib/src/double-login-popup/double-login-popup.component.ts","./projects/lwlib/src/double-login-popup/double-login-popup.component.html","./projects/lwlib/src/double-login-popup/double-login-popup.module.ts","./projects/lwlib/src/edit-category-popup2/category/category.component.ts","./projects/lwlib/src/edit-category-popup2/category/category.component.html","./projects/lwlib/src/edit-category-popup2/edit-category-popup2.component.ts","./projects/lwlib/src/edit-category-popup2/edit-category-popup2.component.html","./projects/lwlib/src/edit-category-popup2/edit-category-popup2.module.ts","./projects/lwlib/src/edit-category-popup2/edit-category-popup2.service.ts","./projects/lwlib/src/edit-category-popup2/subcategory/subcategory.component.ts","./projects/lwlib/src/edit-category-popup2/subcategory/subcategory.component.html","./projects/lwlib/src/edit-category-popup/category/category.component.ts","./projects/lwlib/src/edit-category-popup/category/category.component.html","./projects/lwlib/src/edit-category-popup/edit-category-popup.component.ts","./projects/lwlib/src/edit-category-popup/edit-category-popup.component.html","./projects/lwlib/src/edit-category-popup/edit-category-popup.module.ts","./projects/lwlib/src/edit-category-popup/edit-category-popup.service.ts","./projects/lwlib/src/edit-category-popup/edit-category-tab-id.ts","./projects/lwlib/src/edit-category-popup/subcategory-order-request-data.ts","./projects/lwlib/src/edit-category-popup/subcategory/subcategory.component.ts","./projects/lwlib/src/edit-category-popup/subcategory/subcategory.component.html","./projects/lwlib/src/edit-sn-popup/edit-sn-popup-opener.service.ts","./projects/lwlib/src/edit-sn-popup/edit-sn-popup.component.ts","./projects/lwlib/src/edit-sn-popup/edit-sn-popup.component.html","./projects/lwlib/src/edit-sn-popup/edit-sn-popup.module.ts","./projects/lwlib/src/element-scroll/element-scroll.ts","./projects/lwlib/src/email-setting-popup/email-setting-popup.component.ts","./projects/lwlib/src/email-setting-popup/email-setting-popup.component.html","./projects/lwlib/src/email-setting-popup/email-setting-popup.module.ts","./projects/lwlib/src/ext-number.ts","./projects/lwlib/src/facebook-id-setting-popup/facebook-id-setting-popup.component.ts","./projects/lwlib/src/facebook-id-setting-popup/facebook-id-setting-popup.component.html","./projects/lwlib/src/facebook-id-setting-popup/facebook-id-setting-popup.module.ts","./projects/lwlib/src/filter-meet-member-popup/filter-meet-member-popup.component.html","./projects/lwlib/src/filter-meet-member-popup/filter-meet-member-popup.component.ts","./projects/lwlib/src/filter-meet-member-popup/filter-meet-member-popup.module.ts","./projects/lwlib/src/filter-popup/filter-popup.component.ts","./projects/lwlib/src/filter-popup/filter-popup.component.html","./projects/lwlib/src/filter-popup/filter-popup.module.ts","./projects/lwlib/src/filter-popup/filter-popup.service.ts","./projects/lwlib/src/filter-popup/list-block-category/list-block-category.component.ts","./projects/lwlib/src/filter-popup/list-block-category/list-block-category.component.html","./projects/lwlib/src/filter-popup/list-block-category/list-block-category.module.ts","./projects/lwlib/src/filter-popup/list-block-join-discuss/list-block-join-discuss.component.html","./projects/lwlib/src/filter-popup/list-block-join-discuss/list-block-join-discuss.component.ts","./projects/lwlib/src/filter-popup/list-block-join-discuss/list-block-join-discuss.module.ts","./projects/lwlib/src/filter-popup/list-block-subcategory/list-block-subcategory.component.ts","./projects/lwlib/src/filter-popup/list-block-subcategory/list-block-subcategory.component.html","./projects/lwlib/src/filter-popup/list-block-subcategory/list-block-subcategory.module.ts","./projects/lwlib/src/filter-popup/list-block-team-member/list-block-team-member.component.html","./projects/lwlib/src/filter-popup/list-block-team-member/list-block-team-member.component.ts","./projects/lwlib/src/filter-popup/list-block-team-member/list-block-team-member.module.ts","./projects/lwlib/src/fix-profile-notify-popup/fix-profile-notify-popup.component.ts","./projects/lwlib/src/fix-profile-notify-popup/fix-profile-notify-popup.component.html","./projects/lwlib/src/fix-profile-notify-popup/fix-profile-notify-popup.module.ts","./projects/lwlib/src/guard/device-check-is-desktop.guard.ts","./projects/lwlib/src/guard/device-checker.guard.ts","./projects/lwlib/src/guest-timeup-popup/guest-timeup-popup.component.ts","./projects/lwlib/src/guest-timeup-popup/guest-timeup-popup.component.html","./projects/lwlib/src/guest-timeup-popup/guest-timeup-popup.module.ts","./projects/lwlib/src/guid.ts","./projects/lwlib/src/idler/idler.module.ts","./projects/lwlib/src/idler/idler.service.ts","./projects/lwlib/src/indictment/indictment.service.ts","./projects/lwlib/src/init/init-name-trigger.ts","./projects/lwlib/src/init/init-watcher.ts","./projects/lwlib/src/init/init.service.ts","./projects/lwlib/src/input-char-limit.directive.ts","./projects/lwlib/src/introduction-setting-popup/introduction-setting-popup.component.ts","./projects/lwlib/src/introduction-setting-popup/introduction-setting-popup.component.html","./projects/lwlib/src/introduction-setting-popup/introduction-setting-popup.module.ts","./projects/lwlib/src/judgment-history-popup/judgment-history-popup.component.ts","./projects/lwlib/src/judgment-history-popup/judgment-history-popup.component.html","./projects/lwlib/src/judgment-history-popup/judgment-history-popup.module.ts","./projects/lwlib/src/judgment/judgment-case.ts","./projects/lwlib/src/judicial-interpret/judicial-interpret-case.ts","./projects/lwlib/src/judicial-interpret/judicial-interpret-court.ts","./projects/lwlib/src/keyword-finder-lite/keyword-finder-lite.component.ts","./projects/lwlib/src/keyword-finder-lite/keyword-finder-lite.component.html","./projects/lwlib/src/keyword-finder-lite/keyword-finder-lite.module.ts","./projects/lwlib/src/keyword-finder/keyword-finder.component.ts","./projects/lwlib/src/keyword-finder/keyword-finder.component.html","./projects/lwlib/src/keyword-finder/keyword-finder.module.ts","./projects/lwlib/src/keyword-searcher/searcher-keyword-kind.ts","./projects/lwlib/src/keyword-searcher/searcher-keyword.ts","./projects/lwlib/src/law-article-content-spliter/law-article-content-line.ts","./projects/lwlib/src/law-article-content-spliter/law-article-content-spliter-flag.ts","./projects/lwlib/src/law-article-content-spliter/law-article-content-spliter.ts","./projects/lwlib/src/law-article-list/law-article-block-show-type.enum.ts","./projects/lwlib/src/law-article-list/law-article-block.ts","./projects/lwlib/src/law-article-list/law-article-content.ts","./projects/lwlib/src/law-article-list/law-article-item.ts","./projects/lwlib/src/law-article-list/law-article-list.component.ts","./projects/lwlib/src/law-article-list/law-article-list.component.html","./projects/lwlib/src/law-article-list/law-article-list.module.ts","./projects/lwlib/src/law-article-list/law-article-list.service.ts","./projects/lwlib/src/law-rule-evolution-popup/law-rule-evolution-popup.component.ts","./projects/lwlib/src/law-rule-evolution-popup/law-rule-evolution-popup.component.html","./projects/lwlib/src/law-rule-evolution-popup/law-rule-evolution-popup.module.ts","./projects/lwlib/src/law-rule-evolution-time-editor-popup/law-legislation-time.ts","./projects/lwlib/src/law-rule-evolution-time-editor-popup/law-rule-evolution-time-editor-popup-opener.service.ts","./projects/lwlib/src/law-rule-evolution-time-editor-popup/law-rule-evolution-time-editor-popup.component.ts","./projects/lwlib/src/law-rule-evolution-time-editor-popup/law-rule-evolution-time-editor-popup.component.html","./projects/lwlib/src/law-rule-evolution-time-editor-popup/law-rule-evolution-time-editor-popup.module.ts","./projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-item.ts","./projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-popup.component.ts","./projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-popup.component.html","./projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-popup.module.ts","./projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag.ts","./projects/lwlib/src/law-rule/law-article-source.ts","./projects/lwlib/src/law-rule/law-article.ts","./projects/lwlib/src/law-rule/law-legislation.ts","./projects/lwlib/src/law-rule/law-relate-system.ts","./projects/lwlib/src/law-rule/law-rule-status-id.enum.ts","./projects/lwlib/src/law-rule/law-rule.service.ts","./projects/lwlib/src/law-rule/law-rule.ts","./projects/lwlib/src/law-rule/law-status-source.ts","./projects/lwlib/src/law-rule/law-status.ts","./projects/lwlib/src/law-rule/law-system-level-id.enum.ts","./projects/lwlib/src/law-rule/law-system-source.ts","./projects/lwlib/src/law-rule/law-system.ts","./projects/lwlib/src/lib/lw-ext.ts","./projects/lwlib/src/line-id-setting-popup/line-id-setting-popup.component.ts","./projects/lwlib/src/line-id-setting-popup/line-id-setting-popup.component.html","./projects/lwlib/src/line-id-setting-popup/line-id-setting-popup.module.ts","./projects/lwlib/src/loading-icon/area-loading-icon/area-loading-icon.component.ts","./projects/lwlib/src/loading-icon/area-loading-icon/area-loading-icon.component.html","./projects/lwlib/src/loading-icon/loading-icon.component.html","./projects/lwlib/src/loading-icon/loading-icon.component.ts","./projects/lwlib/src/loading-icon/loading-icon.module.ts","./projects/lwlib/src/loading-icon/loading-icon.service.ts","./projects/lwlib/src/log-page/log-page-id.enum.ts","./projects/lwlib/src/login-invalid-popup/login-invalid-popup-opener.service.ts","./projects/lwlib/src/login-invalid-popup/login-invalid-popup.component.ts","./projects/lwlib/src/login-invalid-popup/login-invalid-popup.component.html","./projects/lwlib/src/login-invalid-popup/login-invalid-popup.module.ts","./projects/lwlib/src/maintenance-popup/maintenance-popup-opener.service.ts","./projects/lwlib/src/maintenance-popup/maintenance-popup.component.ts","./projects/lwlib/src/maintenance-popup/maintenance-popup.component.html","./projects/lwlib/src/maintenance-popup/maintenance-popup.module.ts","./projects/lwlib/src/mask-full-screen/mask-full-screen.component.ts","./projects/lwlib/src/mask-full-screen/mask-full-screen.component.html","./projects/lwlib/src/mask-full-screen/mask-full-screen.module.ts","./projects/lwlib/src/mask-full-screen/mask-full-screen.ts","./projects/lwlib/src/material-helper.ts","./projects/lwlib/src/member-permission-config-popup/member-permission-config-popup.component.ts","./projects/lwlib/src/member-permission-config-popup/member-permission-config-popup.component.html","./projects/lwlib/src/member-permission-config-popup/member-permission-config-popup.module.ts","./projects/lwlib/src/member-permission-config-popup/paid-info.ts","./projects/lwlib/src/member-profile-change-popup/member-profile-change-popup.component.ts","./projects/lwlib/src/member-profile-change-popup/member-profile-change-popup.component.html","./projects/lwlib/src/member-profile-change-popup/member-profile-change-popup.module.ts","./projects/lwlib/src/member-profile-edit-popup/member-profile-edit-popup.component.ts","./projects/lwlib/src/member-profile-edit-popup/member-profile-edit-popup.component.html","./projects/lwlib/src/member-profile-edit-popup/member-profile-edit-popup.module.ts","./projects/lwlib/src/member-profile-edit-popup/profile-edit-address.ts","./projects/lwlib/src/member-profile-edit-popup/profile-edit-birthday.ts","./projects/lwlib/src/member-profile-edit-popup/profile-edit-goal.ts","./projects/lwlib/src/member-profile-edit-popup/profile-edit-help.ts","./projects/lwlib/src/member-profile-edit-popup/profile-edit-job.ts","./projects/lwlib/src/member-profile-edit-popup/profile-edit-nickname.ts","./projects/lwlib/src/member-profile-edit-popup/profile-edit-picture.ts","./projects/lwlib/src/member-profile-edit-popup/update-member-profile-request.ts","./projects/lwlib/src/member-select-popup/member-select-popup.component.html","./projects/lwlib/src/member-select-popup/member-select-popup.component.ts","./projects/lwlib/src/member-select-popup/member-select-popup.module.ts","./projects/lwlib/src/member/member.service.ts","./projects/lwlib/src/net.service.ts","./projects/lwlib/src/new-update-popup/new-update-popup.component.ts","./projects/lwlib/src/new-update-popup/new-update-popup.component.html","./projects/lwlib/src/new-update-popup/new-update-popup.module.ts","./projects/lwlib/src/ngx-croppie/ngx-croppie.component.ts","./projects/lwlib/src/ngx-croppie/ngx-croppie.module.ts","./projects/lwlib/src/note-config-popup/note-config-popup.component.html","./projects/lwlib/src/note-config-popup/note-config-popup.component.ts","./projects/lwlib/src/note-config-popup/note-config-popup.module.ts","./projects/lwlib/src/note-evaluate-point-popup/note-evaluate-point-item.ts","./projects/lwlib/src/note-evaluate-point-popup/note-evaluate-point-popup.component.ts","./projects/lwlib/src/note-evaluate-point-popup/note-evaluate-point-popup.component.html","./projects/lwlib/src/note-evaluate-point-popup/note-evaluate-point-popup.module.ts","./projects/lwlib/src/notification/message-item.ts","./projects/lwlib/src/notification/message-type.enum.ts","./projects/lwlib/src/notification/notification.component.ts","./projects/lwlib/src/notification/notification.component.html","./projects/lwlib/src/notification/notification.module.ts","./projects/lwlib/src/notification/notification.service.ts","./projects/lwlib/src/notify/notify-type-id.enum.ts","./projects/lwlib/src/notify/notify.component.ts","./projects/lwlib/src/notify/notify.component.html","./projects/lwlib/src/notify/notify.module.ts","./projects/lwlib/src/notify/notify.service.ts","./projects/lwlib/src/notify/notify.ts","./projects/lwlib/src/number-inputer/number-inputer.component.ts","./projects/lwlib/src/number-inputer/number-inputer.component.html","./projects/lwlib/src/number-inputer/number-inputer.module.ts","./projects/lwlib/src/page-change2/page-change-config.ts","./projects/lwlib/src/page-change2/page-change2.component.ts","./projects/lwlib/src/page-change2/page-change2.component.html","./projects/lwlib/src/page-change2/page-change2.module.ts","./projects/lwlib/src/page-change/page-change.component.ts","./projects/lwlib/src/page-change/page-change.component.html","./projects/lwlib/src/page-change/page-change.module.ts","./projects/lwlib/src/page-name.ts","./projects/lwlib/src/password-change-popup/change-password-request.ts","./projects/lwlib/src/password-change-popup/password-change-popup.component.ts","./projects/lwlib/src/password-change-popup/password-change-popup.component.html","./projects/lwlib/src/password-change-popup/password-change-popup.module.ts","./projects/lwlib/src/pay-info-over-save-limit-popup/pay-info-over-save-limit-popup.component.ts","./projects/lwlib/src/pay-info-over-save-limit-popup/pay-info-over-save-limit-popup.component.html","./projects/lwlib/src/pay-info-over-save-limit-popup/pay-info-over-save-limit-popup.module.ts","./projects/lwlib/src/pay-info-over-time-limit-popup/pay-info-over-time-limit-popup.component.html","./projects/lwlib/src/pay-info-over-time-limit-popup/pay-info-over-time-limit-popup.component.ts","./projects/lwlib/src/pay-info-over-time-limit-popup/pay-info-over-time-limit-popup.module.ts","./projects/lwlib/src/pay-tip-config-global-popup/pay-tip-config-global-popup.component.ts","./projects/lwlib/src/pay-tip-config-global-popup/pay-tip-config-global-popup.component.html","./projects/lwlib/src/pay-tip-config-global-popup/pay-tip-config-global-popup.module.ts","./projects/lwlib/src/pay-tip-config-personal-popup/pay-tip-config-personal-popup.component.ts","./projects/lwlib/src/pay-tip-config-personal-popup/pay-tip-config-personal-popup.component.html","./projects/lwlib/src/pay-tip-config-personal-popup/pay-tip-config-personal-popup.module.ts","./projects/lwlib/src/pay-tip-popup/pay-status-id.enum.ts","./projects/lwlib/src/pay-tip-popup/pay-tip-popup-opener.service.ts","./projects/lwlib/src/pay-tip-popup/pay-tip-popup.component.ts","./projects/lwlib/src/pay-tip-popup/pay-tip-popup.component.html","./projects/lwlib/src/pay-tip-popup/pay-tip-popup.module.ts","./projects/lwlib/src/pay-tip-popup/pay.service.ts","./projects/lwlib/src/permission-config-popup/permission-config-popup.component.ts","./projects/lwlib/src/permission-config-popup/permission-config-popup.component.html","./projects/lwlib/src/permission-config-popup/permission-config-popup.module.ts","./projects/lwlib/src/permission-config-popup/permission-data.ts","./projects/lwlib/src/permission-config-popup/permission-id.enum.ts","./projects/lwlib/src/permission-setting-popup/permission-setting-popup.component.ts","./projects/lwlib/src/permission-setting-popup/permission-setting-popup.component.html","./projects/lwlib/src/permission-setting-popup/permission-setting-popup.module.ts","./projects/lwlib/src/personal-config-popup/personal-config-popup.component.ts","./projects/lwlib/src/personal-config-popup/personal-config-popup.component.html","./projects/lwlib/src/personal-config-popup/personal-config-popup.module.ts","./projects/lwlib/src/personal-config-popup/personal-config-popup.service.ts","./projects/lwlib/src/personal-config-popup/setting-content-display-mode/setting-content-display-mode.component.ts","./projects/lwlib/src/personal-config-popup/setting-content-display-mode/setting-content-display-mode.component.html","./projects/lwlib/src/personal-config-popup/setting-content-order-way/setting-content-order-way.component.ts","./projects/lwlib/src/personal-config-popup/setting-content-order-way/setting-content-order-way.component.html","./projects/lwlib/src/personal-config-popup/setting-content-storage-home/setting-content-storage-home.component.ts","./projects/lwlib/src/personal-config-popup/setting-content-storage-home/setting-content-storage-home.component.html","./projects/lwlib/src/phone-setting-popup/phone-setting-popup.component.ts","./projects/lwlib/src/phone-setting-popup/phone-setting-popup.component.html","./projects/lwlib/src/phone-setting-popup/phone-setting-popup.module.ts","./projects/lwlib/src/picture-crop-popup/picture-crop-popup.component.ts","./projects/lwlib/src/picture-crop-popup/picture-crop-popup.component.html","./projects/lwlib/src/picture-crop-popup/picture-crop-popup.module.ts","./projects/lwlib/src/pipe-highlight/pipe-highlight.module.ts","./projects/lwlib/src/pipe-highlight/pipe-highlight.pipe.ts","./projects/lwlib/src/pipe-safe-innerhtml/pipe-safe-innerhtml.module.ts","./projects/lwlib/src/pipe-safe-innerhtml/pipe-safe-innerhtml.pipe.ts","./projects/lwlib/src/pipe-safe-url/pipe-safe-url.module.ts","./projects/lwlib/src/pipe-safe-url/pipe-safe-url.pipe.ts","./projects/lwlib/src/plan/plan.service.ts","./projects/lwlib/src/plan/plan.ts","./projects/lwlib/src/popup-close-reason.ts","./projects/lwlib/src/popup-manager/popup-manager.service.ts","./projects/lwlib/src/print-config-popup/print-config-popup.component.ts","./projects/lwlib/src/print-config-popup/print-config-popup.component.html","./projects/lwlib/src/print-config-popup/print-config-popup.module.ts","./projects/lwlib/src/print-config-popup/print-config.ts","./projects/lwlib/src/private-case-popup/private-case-popup.component.ts","./projects/lwlib/src/private-case-popup/private-case-popup.component.html","./projects/lwlib/src/private-case-popup/private-case-popup.module.ts","./projects/lwlib/src/put-in-note-check-popup/put-in-note-check-popup.component.ts","./projects/lwlib/src/put-in-note-check-popup/put-in-note-check-popup.component.html","./projects/lwlib/src/put-in-note-check-popup/put-in-note-check-popup.module.ts","./projects/lwlib/src/put-in-note-popup/put-in-note-popup.component.ts","./projects/lwlib/src/put-in-note-popup/put-in-note-popup.component.html","./projects/lwlib/src/put-in-note-popup/put-in-note-popup.module.ts","./projects/lwlib/src/put-in-note-success-popup/put-in-note-success-popup.component.ts","./projects/lwlib/src/put-in-note-success-popup/put-in-note-success-popup.component.html","./projects/lwlib/src/put-in-note-success-popup/put-in-note-success-popup.module.ts","./projects/lwlib/src/recommend-member-popup/recommend-member-popup.component.ts","./projects/lwlib/src/recommend-member-popup/recommend-member-popup.component.html","./projects/lwlib/src/recommend-member-popup/recommend-member-popup.module.ts","./projects/lwlib/src/relate-law-rule-popup/relate-law-rule-popup-opener.service.ts","./projects/lwlib/src/relate-law-rule-popup/relate-law-rule-popup.component.ts","./projects/lwlib/src/relate-law-rule-popup/relate-law-rule-popup.component.html","./projects/lwlib/src/relate-law-rule-popup/relate-law-rule-popup.module.ts","./projects/lwlib/src/rename-popup/rename-popup.component.ts","./projects/lwlib/src/rename-popup/rename-popup.component.html","./projects/lwlib/src/rename-popup/rename-popup.module.ts","./projects/lwlib/src/reward-point-tip-popup/reward-point-tip-popup.component.ts","./projects/lwlib/src/reward-point-tip-popup/reward-point-tip-popup.component.html","./projects/lwlib/src/reward-point-tip-popup/reward-point-tip-popup.module.ts","./projects/lwlib/src/safe-url.pipe.ts","./projects/lwlib/src/save-count-limit-popup/save-count-limit-popup.component.ts","./projects/lwlib/src/save-count-limit-popup/save-count-limit-popup.component.html","./projects/lwlib/src/save-count-limit-popup/save-count-limit-popup.module.ts","./projects/lwlib/src/save-status/save-status.ts","./projects/lwlib/src/scroll-smooth.directive.ts","./projects/lwlib/src/search-tool/search-tool-searcher-law-rule-fulltext/searcher-law-rule-fulltext-result-type-id.enum.ts","./projects/lwlib/src/serializable.ts","./projects/lwlib/src/subscription-group.ts","./projects/lwlib/src/succes-tip/succes-tip.component.ts","./projects/lwlib/src/succes-tip/succes-tip.component.html","./projects/lwlib/src/succes-tip/succes-tip.module.ts","./projects/lwlib/src/summary-filter-popup/summary-filter-display-mode-id.enum.ts","./projects/lwlib/src/summary-filter-popup/summary-filter-popup.component.ts","./projects/lwlib/src/summary-filter-popup/summary-filter-popup.component.html","./projects/lwlib/src/summary-filter-popup/summary-filter-popup.module.ts","./projects/lwlib/src/summary-list/summary-block.ts","./projects/lwlib/src/summary-list/summary-block/summary-block.component.ts","./projects/lwlib/src/summary-list/summary-block/summary-block.component.html","./projects/lwlib/src/summary-list/summary-convert.ts","./projects/lwlib/src/summary-list/summary-copy.ts","./projects/lwlib/src/summary-list/summary-gist-id.enum.ts","./projects/lwlib/src/summary-list/summary-gist.ts","./projects/lwlib/src/summary-list/summary-list.component.ts","./projects/lwlib/src/summary-list/summary-list.component.html","./projects/lwlib/src/summary-list/summary-list.module.ts","./projects/lwlib/src/summary-list/summary-list.service.ts","./projects/lwlib/src/summary-list/summary-save.ts","./projects/lwlib/src/summary-list/summary-space-type-id.enum.ts","./projects/lwlib/src/summary-list/summary-space.ts","./projects/lwlib/src/summary-list/summary-tag.ts","./projects/lwlib/src/summary-list/summary-type.ts","./projects/lwlib/src/summary-list/summary.ts","./projects/lwlib/src/summary-list/summary/summary.component.ts","./projects/lwlib/src/summary-list/summary/summary.component.html","./projects/lwlib/src/summary-window/summary-window.component.ts","./projects/lwlib/src/summary-window/summary-window.component.html","./projects/lwlib/src/summary-window/summary-window.module.ts","./projects/lwlib/src/summary-window/summary-window.service.ts","./projects/lwlib/src/system-announce-popup/system-announce-popup.component.ts","./projects/lwlib/src/system-announce-popup/system-announce-popup.component.html","./projects/lwlib/src/system-announce-popup/system-announce-popup.module.ts","./projects/lwlib/src/team-announce-popup/team-announce-popup.component.ts","./projects/lwlib/src/team-announce-popup/team-announce-popup.component.html","./projects/lwlib/src/team-announce-popup/team-announce-popup.module.ts","./projects/lwlib/src/team-member-option-popup/team-member-option-popup.component.html","./projects/lwlib/src/team-member-option-popup/team-member-option-popup.component.ts","./projects/lwlib/src/team-member-option-popup/team-member-option-popup.module.ts","./projects/lwlib/src/team-note-download-log-popup/team-note-copy-log.ts","./projects/lwlib/src/team-note-download-log-popup/team-note-download-log-popup.component.html","./projects/lwlib/src/team-note-download-log-popup/team-note-download-log-popup.component.ts","./projects/lwlib/src/team-note-download-log-popup/team-note-download-log-popup.module.ts","./projects/lwlib/src/team-note-open-log-popup/team-note-open-log-popup.component.html","./projects/lwlib/src/team-note-open-log-popup/team-note-open-log-popup.component.ts","./projects/lwlib/src/team-note-open-log-popup/team-note-open-log-popup.module.ts","./projects/lwlib/src/team-note-status-popup/team-note-status-id.enum.ts","./projects/lwlib/src/team-note-status-popup/team-note-status-popup.component.ts","./projects/lwlib/src/team-note-status-popup/team-note-status-popup.component.html","./projects/lwlib/src/team-note-status-popup/team-note-status-popup.module.ts","./projects/lwlib/src/team-note-status-popup/team-note-status.ts","./projects/lwlib/src/team/note-put-in-team.ts","./projects/lwlib/src/text-copy.ts","./projects/lwlib/src/text-input-popup/text-input-popup.component.ts","./projects/lwlib/src/text-input-popup/text-input-popup.component.html","./projects/lwlib/src/text-input-popup/text-input-popup.module.ts","./projects/lwlib/src/text-style/text-index-node.ts","./projects/lwlib/src/text-style/text-style-node-filter.ts","./projects/lwlib/src/text-style/text-style-type-id.enum.ts","./projects/lwlib/src/text-style/text-style.ts","./projects/lwlib/src/tool/tool.ts","./projects/lwlib/src/twitter-id-setting-popup/twitter-id-setting-popup.component.ts","./projects/lwlib/src/twitter-id-setting-popup/twitter-id-setting-popup.component.html","./projects/lwlib/src/twitter-id-setting-popup/twitter-id-setting-popup.module.ts","./projects/lwlib/src/url-query-parser.ts","./projects/lwlib/src/validate-on-blur/validate-on-blur.directive.ts","./projects/lwlib/src/validate-on-blur/validate-on-blur.module.ts","./projects/lwlib/src/website-setting-popup/website-setting-popup.component.ts","./projects/lwlib/src/website-setting-popup/website-setting-popup.component.html","./projects/lwlib/src/website-setting-popup/website-setting-popup.module.ts","./projects/lwlib/src/wechat-id-setting-popup/wechat-id-setting-popup.component.ts","./projects/lwlib/src/wechat-id-setting-popup/wechat-id-setting-popup.component.html","./projects/lwlib/src/wechat-id-setting-popup/wechat-id-setting-popup.module.ts","./projects/mobile/src/app/common/common.ts","./projects/mobile/src/app/common/frame-popup-close/frame-popup-close.component.ts","./projects/mobile/src/app/common/frame-popup-close/frame-popup-close.component.html","./projects/mobile/src/app/common/frame-popup-close/frame-popup-close.module.ts","./projects/mobile/src/app/common/frame-popup-head/frame-popup-head.component.ts","./projects/mobile/src/app/common/frame-popup-head/frame-popup-head.component.html","./projects/mobile/src/app/common/frame-popup-head/frame-popup-head.module.ts","./node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["\r\nimport { isNumber } from 'util';\r\n\r\nexport class AppCommonStatic {\r\n /**\r\n * 數字向左推0,2位數, 1->01\r\n */\r\n static padNumber(number: number): string {\r\n let result = '';\r\n if (number == null\r\n || number < 1) {\r\n result = '';\r\n } else if (number < 10) {\r\n result = number.toString().padStart(2, '0');\r\n } else if (number < 1000) {\r\n result = number.toString();\r\n } else {\r\n result = number.toLocaleString();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static getTimeTestArray(): number[] {\r\n const result: number[] = [];\r\n const nowDate = new Date();\r\n const zoneTick = new Date().getTimezoneOffset() * 60 * 1000;\r\n const todayTickZone = Date.parse((nowDate.getFullYear() + '-' + (nowDate.getMonth() + 1) + '-' + nowDate.getDate()));\r\n // const todayTickZone = todayTickUTC + zoneTick;\r\n // const todayDateZone = new Date(todayTickZone);\r\n const currentYearTickUTC = Date.parse(nowDate.getFullYear() + '-01-01');\r\n const currentYearTickZone = currentYearTickUTC + zoneTick;\r\n\r\n // 現在時間\r\n result.push(nowDate.getTime());\r\n result.push(nowDate.getTime() - (1000 * 30)); // 1 30秒前\r\n result.push(nowDate.getTime() - (1000 * 60)); // 2 1分前\r\n result.push(nowDate.getTime() - (1000 * 60 * 30)); // 3 30分前\r\n result.push(nowDate.getTime() - (1000 * 60 * 60)); // 4 1時前\r\n result.push(nowDate.getTime() - (1000 * 60 * 60 * 6)); // 5 6時前\r\n result.push(nowDate.getTime() - (1000 * 60 * 60 * 12)); // 6 12時前\r\n result.push(nowDate.getTime() - (1000 * 60 * 60 * 18)); // 7 18時前\r\n\r\n // 固定時間\r\n result.push(todayTickZone + (1000)); // 00:00:01\r\n result.push(todayTickZone + (1000 * 30)); // 00:00:30\r\n result.push(todayTickZone + (1000 * 60)); // 00:01:00\r\n result.push(todayTickZone + (1000 * 60 * 30)); // 00:30:00\r\n result.push(todayTickZone + (1000 * 60 * 91)); // 01:31:00\r\n result.push(todayTickZone + (1000 * 60 * 392)); // 06:32:00\r\n result.push(todayTickZone + (1000 * 60 * 693)); // 11:33:00\r\n result.push(todayTickZone + (1000 * 60 * 754)); // 12:34:00\r\n result.push(todayTickZone + (1000 * 60 * 1115)); // 18:35:00\r\n result.push(todayTickZone + (1000 * 60 * 1416)); // 23:36:00\r\n result.push(todayTickZone - (1000)); // 昨天 23:59:59\r\n\r\n result.push(currentYearTickZone - (1000)); // 上年 23:59:59\r\n\r\n return result;\r\n }\r\n\r\n static getTimeTestArray2(): any[] {\r\n const result = [];\r\n\r\n const tick1 = new Date('2018/12/10').getTime(); // todayZone\r\n result.push([(tick1 + (-3 * 1800000)), tick1, '2018/12/09 22:30:00']);\r\n result.push([(tick1 + (-2 * 1800000)), tick1, '2018/12/09 23:00:00']);\r\n result.push([(tick1 + (-1 * 1800000)), tick1, '2018/12/09 23:30:00']);\r\n result.push([(tick1 + (0 * 1800000)), tick1, '2018/12/10 00:00:00']);\r\n result.push([(tick1 + (1 * 1800000)), tick1, '2018/12/10 00:30:00']);\r\n result.push([(tick1 + (2 * 1800000)), tick1, '2018/12/10 01:00:00']);\r\n result.push([(tick1 + (3 * 1800000)), tick1, '2018/12/10 01:30:00']);\r\n result.push([(tick1 + (4 * 1800000)), tick1, '2018/12/10 02:00:00']);\r\n result.push([(tick1 + (5 * 1800000)), tick1, '2018/12/10 02:30:00']);\r\n result.push([(tick1 + (6 * 1800000)), tick1, '2018/12/10 03:00:00']);\r\n result.push([(tick1 + (7 * 1800000)), tick1, '2018/12/10 03:30:00']);\r\n result.push([(tick1 + (8 * 1800000)), tick1, '2018/12/10 04:00:00']);\r\n result.push([(tick1 + (9 * 1800000)), tick1, '2018/12/10 04:30:00']);\r\n result.push([(tick1 + (10 * 1800000)), tick1, '2018/12/10 05:00:00']);\r\n result.push([(tick1 + (11 * 1800000)), tick1, '2018/12/10 05:30:00']);\r\n result.push([(tick1 + (12 * 1800000)), tick1, '2018/12/10 06:00:00']);\r\n result.push([(tick1 + (13 * 1800000)), tick1, '2018/12/10 06:30:00']);\r\n result.push([(tick1 + (14 * 1800000)), tick1, '2018/12/10 07:00:00']);\r\n result.push([(tick1 + (15 * 1800000)), tick1, '2018/12/10 07:30:00']);\r\n result.push([(tick1 + (16 * 1800000)), tick1, '2018/12/10 08:00:00']);\r\n result.push([(tick1 + (17 * 1800000)), tick1, '2018/12/10 08:30:00']);\r\n result.push([(tick1 + (18 * 1800000)), tick1, '2018/12/10 09:00:00']);\r\n result.push([(tick1 + (19 * 1800000)), tick1, '2018/12/10 09:30:00']);\r\n result.push([(tick1 + (20 * 1800000)), tick1, '2018/12/10 10:00:00']);\r\n result.push([(tick1 + (21 * 1800000)), tick1, '2018/12/10 10:30:00']);\r\n result.push([(tick1 + (22 * 1800000)), tick1, '2018/12/10 11:00:00']);\r\n result.push([(tick1 + (23 * 1800000)), tick1, '2018/12/10 11:30:00']);\r\n result.push([(tick1 + (24 * 1800000)), tick1, '2018/12/10 12:00:00']);\r\n result.push([(tick1 + (25 * 1800000)), tick1, '2018/12/10 12:30:00']);\r\n result.push([(tick1 + (26 * 1800000)), tick1, '2018/12/10 13:00:00']);\r\n result.push([(tick1 + (27 * 1800000)), tick1, '2018/12/10 13:30:00']);\r\n result.push([(tick1 + (28 * 1800000)), tick1, '2018/12/10 14:00:00']);\r\n result.push([(tick1 + (29 * 1800000)), tick1, '2018/12/10 14:30:00']);\r\n result.push([(tick1 + (30 * 1800000)), tick1, '2018/12/10 15:00:00']);\r\n result.push([(tick1 + (31 * 1800000)), tick1, '2018/12/10 15:30:00']);\r\n result.push([(tick1 + (32 * 1800000)), tick1, '2018/12/10 16:00:00']);\r\n result.push([(tick1 + (33 * 1800000)), tick1, '2018/12/10 16:30:00']);\r\n result.push([(tick1 + (34 * 1800000)), tick1, '2018/12/10 17:00:00']);\r\n result.push([(tick1 + (35 * 1800000)), tick1, '2018/12/10 17:30:00']);\r\n result.push([(tick1 + (36 * 1800000)), tick1, '2018/12/10 18:00:00']);\r\n result.push([(tick1 + (37 * 1800000)), tick1, '2018/12/10 18:30:00']);\r\n result.push([(tick1 + (38 * 1800000)), tick1, '2018/12/10 19:00:00']);\r\n result.push([(tick1 + (39 * 1800000)), tick1, '2018/12/10 19:30:00']);\r\n result.push([(tick1 + (40 * 1800000)), tick1, '2018/12/10 20:00:00']);\r\n result.push([(tick1 + (41 * 1800000)), tick1, '2018/12/10 20:30:00']);\r\n result.push([(tick1 + (42 * 1800000)), tick1, '2018/12/10 21:00:00']);\r\n result.push([(tick1 + (43 * 1800000)), tick1, '2018/12/10 21:30:00']);\r\n result.push([(tick1 + (44 * 1800000)), tick1, '2018/12/10 22:00:00']);\r\n result.push([(tick1 + (45 * 1800000)), tick1, '2018/12/10 22:30:00']);\r\n result.push([(tick1 + (46 * 1800000)), tick1, '2018/12/10 23:00:00']);\r\n result.push([(tick1 + (47 * 1800000)), tick1, '2018/12/10 23:30:00']);\r\n result.push([(tick1 + (48 * 1800000)), tick1, '2018/12/11 00:00:00']);\r\n result.push([(tick1 + (49 * 1800000)), tick1, '2018/12/11 00:30:00']);\r\n return result;\r\n }\r\n\r\n /**\r\n * @param startTick 存檔時間 (C# UTC=JS Zone)\r\n * @param stopTick 現在時間 new Date() = ZoneTime\r\n */\r\n static convertTimeTickPastText1(startTickZone: number, stopTickZone: number): string {\r\n const startDateZone = new Date(startTickZone);\r\n const stopDateZone = new Date(stopTickZone);\r\n const todayStartDateZone = new Date(stopDateZone.getFullYear() + '/' + (stopDateZone.getMonth() + 1) + '/' + stopDateZone.getDate() + 'UTC+8');\r\n const todayStartTickZone = todayStartDateZone.getTime();\r\n const oneDayTick = 1000 * 60 * 60 * 24;\r\n const todayStopDateZone = new Date(todayStartDateZone.getTime() + oneDayTick);\r\n const todayStopTickZone = todayStopDateZone.getTime();\r\n const todayHalfTickZone = todayStartTickZone + (oneDayTick / 2);\r\n const currentYearTickZone = new Date(stopDateZone.getFullYear() + '/1/1 UTC+8').getTime();\r\n\r\n if (startTickZone < currentYearTickZone) {\r\n return (startDateZone.getFullYear() - 1911) + '年' +\r\n (startDateZone.getMonth() + 1).toString() + '月' +\r\n startDateZone.getDate().toString() + '日';\r\n } else if (startTickZone < todayStartTickZone) {\r\n return (startDateZone.getMonth() + 1).toString() + '月' +\r\n startDateZone.getDate().toString() + '日';\r\n } else if (todayStopTickZone <= startTickZone) {\r\n return (startDateZone.getMonth() + 1).toString() + '月' +\r\n startDateZone.getDate().toString() + '日 ' +\r\n startDateZone.getHours().toString().padStart(2, '0') + ':' +\r\n startDateZone.getMinutes().toString().padStart(2, '0')\r\n ;\r\n } else if (todayStartTickZone <= startTickZone\r\n && startTickZone < todayStopTickZone\r\n && startTickZone < todayHalfTickZone) {\r\n return '上午 ' +\r\n startDateZone.getHours().toString().padStart(2, '0') + ':' +\r\n startDateZone.getMinutes().toString().padStart(2, '0')\r\n ;\r\n } else if (todayStartTickZone <= startTickZone\r\n && startTickZone < todayStopTickZone\r\n && todayHalfTickZone <= startTickZone) {\r\n let hourText = (startDateZone.getHours() - 12).toString().padStart(2, '0');\r\n if (hourText === '00') {\r\n hourText = '12';\r\n }\r\n return '下午 ' +\r\n hourText + ':' +\r\n startDateZone.getMinutes().toString().padStart(2, '0')\r\n ;\r\n } else {\r\n console.log('error time');\r\n }\r\n }\r\n\r\n\r\n /** 上午 09:00、下午 01:00、O月O日、OOO年O月O日 */\r\n static convertTimeTickToPastTimeText1(targetTickZone: number): string {\r\n return this.convertTimeTickPastText1(targetTickZone, new Date().getTime());\r\n\r\n // const targetDateUTC = new Date(targetTickZone);\r\n // const nowDateUTC = new Date();\r\n // // const nowTickUTC = nowDateUTC.getTime();\r\n\r\n // /** today 08:00:00,parse的時間有時區差,要另外偏移回來 */\r\n // // const todayTickUTC = Date.parse((nowDateUTC.getFullYear() + '-' + (nowDateUTC.getMonth() + 1) + '-' + nowDateUTC.getDate()));\r\n // const todayTickZone = Date.parse((nowDateUTC.getFullYear() + '-' + (nowDateUTC.getMonth() + 1) + '-' + nowDateUTC.getDate() + 'UTC+8'));\r\n // /** -28800000 */\r\n // const zoneTick = new Date().getTimezoneOffset() * 60 * 1000;\r\n // /** today 00:00:00 */\r\n // // const todayTickZone = todayTickUTC + zoneTick;\r\n // /** 43200000 (12:00:00) */\r\n // const dayHalfTick = 1000 * 60 * 60 * 12;\r\n // const dayTick = 1000 * 60 * 60 * 24;\r\n // const todayEndTickZone = todayTickZone + dayTick;\r\n // /** today 12:00:00 */\r\n // const todayHalfTickZone = todayTickZone + dayHalfTick;\r\n // // 已經經過半天?\r\n // const targetTodayPastHalfUTC = targetTickZone > todayHalfTickZone;\r\n // /** 現在年,parse的時間有時區差,要另外偏移回來 */\r\n // // const currentYearTickUTC = Date.parse(nowDateUTC.getFullYear() + '-01-01');\r\n // const currentYearTickZone = Date.parse(nowDateUTC.getFullYear() + '-01-01 UTC+8');\r\n // // const currentYearTickZone = currentYearTickUTC + zoneTick;\r\n\r\n\r\n // if (targetTickZone < currentYearTickZone) {\r\n // // OOO年O月O日,去年\r\n // return (targetDateUTC.getFullYear() - 1911) + '年' + (targetDateUTC.getMonth() + 1) + '月' + targetDateUTC.getDate() + '日';\r\n // } else if (targetTickZone < todayTickZone\r\n // || targetTickZone >= todayEndTickZone) {\r\n // // O月O日,昨日\r\n // return (targetDateUTC.getMonth() + 1) + '月' + targetDateUTC.getDate() + '日';\r\n // } else if (!targetTodayPastHalfUTC) {\r\n // // 上午 00:00\r\n // return '上午 ' + targetDateUTC.getHours().toString().padStart(2, '0') + ':' + targetDateUTC.getMinutes().toString().padStart(2, '0');\r\n // } else if (targetTodayPastHalfUTC) {\r\n // // 下午 00:00\r\n // return '下午 ' + (targetDateUTC.getHours() - 12).toString().padStart(2, '0') + ':' + targetDateUTC.getMinutes().toString().padStart(2, '0');\r\n // }\r\n\r\n // return '';\r\n }\r\n\r\n /** 上午 09:00、下午 01:00、1月1日、109年1月1日 */\r\n static convertTimeTickToPastTimeText2(time: number): string {\r\n const currentDate = new Date();\r\n const todayStartDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n const todayStopDate = new Date(new Date().setHours(23, 59, 59, 9999));\r\n const targetDate = new Date(time);\r\n const isToday = todayStartDate <= targetDate && targetDate <= todayStopDate;\r\n const todayNoon = new Date(new Date().setHours(12, 0, 0, 0));\r\n const isAM = targetDate < todayNoon;\r\n\r\n const currentYearStartDate = new Date(new Date().setFullYear(currentDate.getFullYear(), 1, 1));\r\n const currentYearStopDate = new Date(new Date().setFullYear(currentDate.getFullYear() + 1, 1, 1) - 1);\r\n const isThisYear = currentYearStartDate <= targetDate && targetDate <= currentYearStopDate;\r\n\r\n const pastTime = currentDate.getTime() - time;\r\n const hourText = (targetDate.getHours() % 12).toString().padStart(2, '0');\r\n const minText = targetDate.getMinutes().toString().padStart(2, '0');\r\n\r\n\r\n\r\n if (pastTime < 0) {\r\n // 未來時間\r\n return '';\r\n } else {\r\n // 過去時間\r\n if (isToday) {\r\n if (isAM) {\r\n return `上午 ${hourText}:${minText}`;\r\n } else {\r\n return `下午 ${hourText}:${minText}`;\r\n }\r\n } else if (isThisYear) {\r\n return `${targetDate.getMonth() + 1}月${targetDate.getDate()}日`;\r\n } else {\r\n let year = targetDate.getFullYear() - 1911;\r\n if (year < 0) {\r\n year = 0;\r\n }\r\n return `${year}年${targetDate.getMonth() + 1}月${targetDate.getDate()}日`;\r\n }\r\n }\r\n }\r\n /** 剛剛、1分鐘前、1小時前、1月1日、109年1月1日 */\r\n static convertTimeTickToPastTimeText3(time: number): string {\r\n const currentDate = new Date();\r\n const currentTime = currentDate.getTime();\r\n const targetDate = new Date(time);\r\n const pastTimeMs = currentTime - time;\r\n const pastTimeSec = pastTimeMs / 1000;\r\n const pastTimeMin = pastTimeSec / 60;\r\n const pastTimeHour = pastTimeMin / 60;\r\n\r\n const todayStartDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n const todayStopDate = new Date(new Date().setHours(23, 59, 59, 9999));\r\n const isToday = todayStartDate <= targetDate && targetDate <= todayStopDate;\r\n\r\n const currentYearStartDate = new Date(new Date().setFullYear(currentDate.getFullYear(), 1, 1));\r\n const currentYearStopDate = new Date(new Date().setFullYear(currentDate.getFullYear() + 1, 1, 1) - 1);\r\n const isThisYear = currentYearStartDate <= targetDate && targetDate <= currentYearStopDate;\r\n\r\n if (pastTimeSec < 60) { // 0~59秒\r\n return `剛剛`;\r\n } else if (60 <= pastTimeSec && pastTimeMin < 60) { // 60秒~59分鐘59秒\r\n return `${Math.floor(pastTimeMin)}分鐘前`;\r\n } else if (isToday && 60 <= pastTimeMin && pastTimeHour < 24) {\r\n return `${Math.floor(pastTimeHour)}小時前`;\r\n } else if (!isToday && isThisYear) {\r\n return `${targetDate.getMonth() + 1}月${targetDate.getDate()}日`;\r\n } else if (!isThisYear) {\r\n return `${targetDate.getFullYear() - 1911}年${targetDate.getMonth() + 1}月${targetDate.getDate()}日`;\r\n }\r\n }\r\n /** 2018/01/01 00:00:00 */\r\n static convertTimeTickToTimeText1(ticks: number): string {\r\n const time = new Date(ticks);\r\n const timeString = time.getFullYear()\r\n + '/' + (time.getMonth() + 1).toString().padStart(2, '0')\r\n + '/' + (time.getDate()).toString().padStart(2, '0')\r\n + ' ' + (time.getHours()).toString().padStart(2, '0')\r\n + ':' + (time.getMinutes()).toString().padStart(2, '0')\r\n + ':' + (time.getSeconds()).toString().padStart(2, '0');\r\n\r\n return timeString;\r\n }\r\n /** 107/12/31 */\r\n static convertTimeTickToTimeText2(ticks: number): string {\r\n const time = new Date(ticks);\r\n const timeString = (time.getFullYear() - 1911)\r\n + '/' + this.padNumber(time.getMonth() + 1)\r\n + '/' + this.padNumber(time.getDate());\r\n\r\n return timeString;\r\n }\r\n /** 2020 年 01 月 01 日 00:00 */\r\n static convertTimeTickToTimeText3(ticks: number): string {\r\n const time = new Date(ticks);\r\n const timeString = time.getFullYear()\r\n + ' 年 ' + (time.getMonth() + 1).toString().padStart(2, '0')\r\n + ' 月 ' + (time.getDate()).toString().padStart(2, '0')\r\n + ' 日 ' + (time.getHours()).toString().padStart(2, '0')\r\n + ':' + (time.getMinutes()).toString().padStart(2, '0');\r\n\r\n return timeString;\r\n }\r\n /** 2020/01/01 00:00 */\r\n static convertTimeTickToTimeText4(ticks: number): string {\r\n const time = new Date(ticks);\r\n const timeString = time.getFullYear()\r\n + '/' + (time.getMonth() + 1).toString().padStart(2, '0')\r\n + '/' + (time.getDate()).toString().padStart(2, '0')\r\n + ' ' + (time.getHours()).toString().padStart(2, '0')\r\n + ':' + (time.getMinutes()).toString().padStart(2, '0');\r\n \r\n return timeString;\r\n }\r\n //// 剛剛、1分內、2分、1小時、昨天、前天、O月O日、OOO年O月O日\r\n // convertTimeTickToPastTimeText2(tick: number): string {\r\n // let nowDate = new Date();\r\n // let nowTick = nowDate.getTime();\r\n // let todayTick = Date.parse((nowDate.getFullYear() + '-' + (nowDate.getMonth() + 1) + '-' + nowDate.getDate()));\r\n // let todayDate = new Date(todayTick);\r\n // let todayPast = tick - todayTick;\r\n\r\n // let pastTick = nowTick - tick;\r\n\r\n // let sec10 = 1000 * 10;\r\n // let min1 = 1000 * 60;\r\n // let hour1 = 1000 * 60 * 60;\r\n // let ampm = todayPast < 43200000 ? '上午' : '下午';\r\n\r\n // if (pastTick < 1000 * 10) {\r\n\r\n // } else if (1000 * 10 <= pastTick && pastTick < 1000 * 60) {\r\n\r\n // } else if (1000 * 60 <= pastTick && pastTick < 1000 * 60) {\r\n\r\n // }\r\n // }\r\n\r\n /** 剩餘時間轉換:00:00:00 */\r\n static convertLeftTimeTickToTimeText1(left_time_ticks: number): string {\r\n const ms = left_time_ticks;\r\n const hh = Math.floor(ms / (1000 * 60 * 60));\r\n const left_hh_ms = ms % (1000 * 60 * 60);\r\n const mm = Math.floor(left_hh_ms / (1000 * 60));\r\n const left_mm_ms = ms % (1000 * 60);\r\n const ss = Math.floor(left_mm_ms / (1000));\r\n\r\n return hh.toString().padStart(2, '0')\r\n + ':' + mm.toString().padStart(2, '0')\r\n + ':' + ss.toString().padStart(2, '0');\r\n }\r\n /** 剩餘時間轉換:00:00 (mm:ss) */\r\n static convertLeftTimeTickToTimeText2(left_time_ticks: number): string {\r\n const ms = left_time_ticks;\r\n const mm = Math.floor(ms / (1000 * 60));\r\n const left_mm_ms = ms % (1000 * 60);\r\n const ss = Math.floor(left_mm_ms / (1000));\r\n\r\n return mm.toString().padStart(2, '0')\r\n + ':' + ss.toString().padStart(2, '0');\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /** AaaBbbCcc -> aaa-bbb-ccc */\r\n static convertText_CamelCaseToLowerDash(text: string): string {\r\n if (!text || text.length === 0) {\r\n return '';\r\n }\r\n\r\n let temp = text[0].toLowerCase();\r\n\r\n for (let i = 1; i < text.length; i++) {\r\n const chr = text.charAt(i);\r\n if (!chr\r\n || isNumber(chr)) {\r\n temp += chr;\r\n } else if (chr === chr.toUpperCase()) {\r\n if (text[i - 1] === '-') {\r\n temp += chr.toLowerCase();\r\n } else {\r\n temp += '-' + chr.toLowerCase();\r\n }\r\n } else {\r\n temp += chr;\r\n }\r\n }\r\n return temp;\r\n }\r\n\r\n /** AaaBbbCcc -> aaa-bbb-ccc */\r\n static convert_CamelCase_To_camel_dash_case(text: string): string {\r\n const result = text\r\n .split(/([A-Z]+[^A-Z]+)/)\r\n .filter(v => v.trim())\r\n .map((word) => {\r\n return word.toLowerCase();\r\n })\r\n .join('-');\r\n // console.log(text, ' to ', result);\r\n return result;\r\n }\r\n\r\n /** AaaBbbCcc -> aaa_bbb_ccc */\r\n static convert_CamelCase_To_camel_case(text: string): string {\r\n const result = text\r\n .split(/([A-Z]+[^A-Z]+)/)\r\n .filter(v => v.trim())\r\n .map((word) => {\r\n return word.toLowerCase();\r\n })\r\n .join('_');\r\n // console.log(text, ' to ', result);\r\n return result;\r\n }\r\n\r\n static intToHex36(num: number): string {\r\n return num.toString(36);\r\n }\r\n static hex36ToInt(hex: string): number {\r\n return parseInt(hex, 36);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { isNumber } from 'util';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppCommonService {\r\n\r\n constructor() { }\r\n /**\r\n * 數字向左推0,2位數, 1->01\r\n */\r\n padNumber(number: number): string {\r\n let result = '';\r\n if (number == null\r\n || number < 1) {\r\n result = '';\r\n } else if (number < 10) {\r\n result = number.toString().padStart(2, '0');\r\n } else if (number < 1000) {\r\n result = number.toString();\r\n } else {\r\n result = number.toLocaleString();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getTimeTestArray(): number[] {\r\n const result: number[] = [];\r\n const nowDate = new Date();\r\n const zoneTick = new Date().getTimezoneOffset() * 60 * 1000;\r\n const todayTickZone = Date.parse((nowDate.getFullYear() + '-' + (nowDate.getMonth() + 1) + '-' + nowDate.getDate()));\r\n // const todayTickZone = todayTickUTC + zoneTick;\r\n // const todayDateZone = new Date(todayTickZone);\r\n const currentYearTickUTC = Date.parse(nowDate.getFullYear() + '-01-01');\r\n const currentYearTickZone = currentYearTickUTC + zoneTick;\r\n\r\n // 現在時間\r\n result.push(nowDate.getTime());\r\n result.push(nowDate.getTime() - (1000 * 30)); // 1 30秒前\r\n result.push(nowDate.getTime() - (1000 * 60)); // 2 1分前\r\n result.push(nowDate.getTime() - (1000 * 60 * 30)); // 3 30分前\r\n result.push(nowDate.getTime() - (1000 * 60 * 60)); // 4 1時前\r\n result.push(nowDate.getTime() - (1000 * 60 * 60 * 6)); // 5 6時前\r\n result.push(nowDate.getTime() - (1000 * 60 * 60 * 12)); // 6 12時前\r\n result.push(nowDate.getTime() - (1000 * 60 * 60 * 18)); // 7 18時前\r\n\r\n // 固定時間\r\n result.push(todayTickZone + (1000)); // 00:00:01\r\n result.push(todayTickZone + (1000 * 30)); // 00:00:30\r\n result.push(todayTickZone + (1000 * 60)); // 00:01:00\r\n result.push(todayTickZone + (1000 * 60 * 30)); // 00:30:00\r\n result.push(todayTickZone + (1000 * 60 * 91)); // 01:31:00\r\n result.push(todayTickZone + (1000 * 60 * 392)); // 06:32:00\r\n result.push(todayTickZone + (1000 * 60 * 693)); // 11:33:00\r\n result.push(todayTickZone + (1000 * 60 * 754)); // 12:34:00\r\n result.push(todayTickZone + (1000 * 60 * 1115)); // 18:35:00\r\n result.push(todayTickZone + (1000 * 60 * 1416)); // 23:36:00\r\n result.push(todayTickZone - (1000)); // 昨天 23:59:59\r\n\r\n result.push(currentYearTickZone - (1000)); // 上年 23:59:59\r\n\r\n return result;\r\n }\r\n\r\n getTimeTestArray2(): any[] {\r\n const result = [];\r\n\r\n const tick1 = new Date('2018/12/10').getTime(); // todayZone\r\n result.push([(tick1 + (-3 * 1800000)), tick1, '2018/12/09 22:30:00']);\r\n result.push([(tick1 + (-2 * 1800000)), tick1, '2018/12/09 23:00:00']);\r\n result.push([(tick1 + (-1 * 1800000)), tick1, '2018/12/09 23:30:00']);\r\n result.push([(tick1 + (0 * 1800000)), tick1, '2018/12/10 00:00:00']);\r\n result.push([(tick1 + (1 * 1800000)), tick1, '2018/12/10 00:30:00']);\r\n result.push([(tick1 + (2 * 1800000)), tick1, '2018/12/10 01:00:00']);\r\n result.push([(tick1 + (3 * 1800000)), tick1, '2018/12/10 01:30:00']);\r\n result.push([(tick1 + (4 * 1800000)), tick1, '2018/12/10 02:00:00']);\r\n result.push([(tick1 + (5 * 1800000)), tick1, '2018/12/10 02:30:00']);\r\n result.push([(tick1 + (6 * 1800000)), tick1, '2018/12/10 03:00:00']);\r\n result.push([(tick1 + (7 * 1800000)), tick1, '2018/12/10 03:30:00']);\r\n result.push([(tick1 + (8 * 1800000)), tick1, '2018/12/10 04:00:00']);\r\n result.push([(tick1 + (9 * 1800000)), tick1, '2018/12/10 04:30:00']);\r\n result.push([(tick1 + (10 * 1800000)), tick1, '2018/12/10 05:00:00']);\r\n result.push([(tick1 + (11 * 1800000)), tick1, '2018/12/10 05:30:00']);\r\n result.push([(tick1 + (12 * 1800000)), tick1, '2018/12/10 06:00:00']);\r\n result.push([(tick1 + (13 * 1800000)), tick1, '2018/12/10 06:30:00']);\r\n result.push([(tick1 + (14 * 1800000)), tick1, '2018/12/10 07:00:00']);\r\n result.push([(tick1 + (15 * 1800000)), tick1, '2018/12/10 07:30:00']);\r\n result.push([(tick1 + (16 * 1800000)), tick1, '2018/12/10 08:00:00']);\r\n result.push([(tick1 + (17 * 1800000)), tick1, '2018/12/10 08:30:00']);\r\n result.push([(tick1 + (18 * 1800000)), tick1, '2018/12/10 09:00:00']);\r\n result.push([(tick1 + (19 * 1800000)), tick1, '2018/12/10 09:30:00']);\r\n result.push([(tick1 + (20 * 1800000)), tick1, '2018/12/10 10:00:00']);\r\n result.push([(tick1 + (21 * 1800000)), tick1, '2018/12/10 10:30:00']);\r\n result.push([(tick1 + (22 * 1800000)), tick1, '2018/12/10 11:00:00']);\r\n result.push([(tick1 + (23 * 1800000)), tick1, '2018/12/10 11:30:00']);\r\n result.push([(tick1 + (24 * 1800000)), tick1, '2018/12/10 12:00:00']);\r\n result.push([(tick1 + (25 * 1800000)), tick1, '2018/12/10 12:30:00']);\r\n result.push([(tick1 + (26 * 1800000)), tick1, '2018/12/10 13:00:00']);\r\n result.push([(tick1 + (27 * 1800000)), tick1, '2018/12/10 13:30:00']);\r\n result.push([(tick1 + (28 * 1800000)), tick1, '2018/12/10 14:00:00']);\r\n result.push([(tick1 + (29 * 1800000)), tick1, '2018/12/10 14:30:00']);\r\n result.push([(tick1 + (30 * 1800000)), tick1, '2018/12/10 15:00:00']);\r\n result.push([(tick1 + (31 * 1800000)), tick1, '2018/12/10 15:30:00']);\r\n result.push([(tick1 + (32 * 1800000)), tick1, '2018/12/10 16:00:00']);\r\n result.push([(tick1 + (33 * 1800000)), tick1, '2018/12/10 16:30:00']);\r\n result.push([(tick1 + (34 * 1800000)), tick1, '2018/12/10 17:00:00']);\r\n result.push([(tick1 + (35 * 1800000)), tick1, '2018/12/10 17:30:00']);\r\n result.push([(tick1 + (36 * 1800000)), tick1, '2018/12/10 18:00:00']);\r\n result.push([(tick1 + (37 * 1800000)), tick1, '2018/12/10 18:30:00']);\r\n result.push([(tick1 + (38 * 1800000)), tick1, '2018/12/10 19:00:00']);\r\n result.push([(tick1 + (39 * 1800000)), tick1, '2018/12/10 19:30:00']);\r\n result.push([(tick1 + (40 * 1800000)), tick1, '2018/12/10 20:00:00']);\r\n result.push([(tick1 + (41 * 1800000)), tick1, '2018/12/10 20:30:00']);\r\n result.push([(tick1 + (42 * 1800000)), tick1, '2018/12/10 21:00:00']);\r\n result.push([(tick1 + (43 * 1800000)), tick1, '2018/12/10 21:30:00']);\r\n result.push([(tick1 + (44 * 1800000)), tick1, '2018/12/10 22:00:00']);\r\n result.push([(tick1 + (45 * 1800000)), tick1, '2018/12/10 22:30:00']);\r\n result.push([(tick1 + (46 * 1800000)), tick1, '2018/12/10 23:00:00']);\r\n result.push([(tick1 + (47 * 1800000)), tick1, '2018/12/10 23:30:00']);\r\n result.push([(tick1 + (48 * 1800000)), tick1, '2018/12/11 00:00:00']);\r\n result.push([(tick1 + (49 * 1800000)), tick1, '2018/12/11 00:30:00']);\r\n return result;\r\n }\r\n\r\n /**\r\n * @param startTick 存檔時間 (C# UTC=JS Zone)\r\n * @param stopTick 現在時間 new Date() = ZoneTime\r\n */\r\n convertTimeTickPastText1(startTickZone: number, stopTickZone: number): string {\r\n const startDateZone = new Date(startTickZone);\r\n const stopDateZone = new Date(stopTickZone);\r\n const todayStartDateZone = new Date(stopDateZone.getFullYear() + '/' + (stopDateZone.getMonth() + 1) + '/' + stopDateZone.getDate() + 'UTC+8');\r\n const todayStartTickZone = todayStartDateZone.getTime();\r\n const oneDayTick = 1000 * 60 * 60 * 24;\r\n const todayStopDateZone = new Date(todayStartDateZone.getTime() + oneDayTick);\r\n const todayStopTickZone = todayStopDateZone.getTime();\r\n const todayHalfTickZone = todayStartTickZone + (oneDayTick / 2);\r\n const currentYearTickZone = new Date(stopDateZone.getFullYear() + '/1/1 UTC+8').getTime();\r\n\r\n if (startTickZone < currentYearTickZone) {\r\n return (startDateZone.getFullYear() - 1911) + '年' +\r\n (startDateZone.getMonth() + 1).toString() + '月' +\r\n startDateZone.getDate().toString() + '日';\r\n } else if (startTickZone < todayStartTickZone) {\r\n return (startDateZone.getMonth() + 1).toString() + '月' +\r\n startDateZone.getDate().toString() + '日';\r\n } else if (todayStopTickZone <= startTickZone) {\r\n return (startDateZone.getMonth() + 1).toString() + '月' +\r\n startDateZone.getDate().toString() + '日 ' +\r\n startDateZone.getHours().toString().padStart(2, '0') + ':' +\r\n startDateZone.getMinutes().toString().padStart(2, '0')\r\n ;\r\n } else if (todayStartTickZone <= startTickZone\r\n && startTickZone < todayStopTickZone\r\n && startTickZone < todayHalfTickZone) {\r\n return '上午 ' +\r\n startDateZone.getHours().toString().padStart(2, '0') + ':' +\r\n startDateZone.getMinutes().toString().padStart(2, '0')\r\n ;\r\n } else if (todayStartTickZone <= startTickZone\r\n && startTickZone < todayStopTickZone\r\n && todayHalfTickZone <= startTickZone) {\r\n let text = '下午 ' +\r\n (startDateZone.getHours() - 12).toString().padStart(2, '0') + ':' +\r\n startDateZone.getMinutes().toString().padStart(2, '0')\r\n ;\r\n text = text.replace('下午 00:', '下午 12:');\r\n return text;\r\n } else {\r\n console.log('error time');\r\n }\r\n }\r\n\r\n\r\n /** 上午 09:00、下午 01:00、O月O日、OOO年O月O日 */\r\n convertTimeTickToPastTimeText1(targetTickZone: number): string {\r\n return this.convertTimeTickPastText1(targetTickZone, new Date().getTime());\r\n\r\n // const targetDateUTC = new Date(targetTickZone);\r\n // const nowDateUTC = new Date();\r\n // // const nowTickUTC = nowDateUTC.getTime();\r\n\r\n // /** today 08:00:00,parse的時間有時區差,要另外偏移回來 */\r\n // // const todayTickUTC = Date.parse((nowDateUTC.getFullYear() + '-' + (nowDateUTC.getMonth() + 1) + '-' + nowDateUTC.getDate()));\r\n // const todayTickZone = Date.parse((nowDateUTC.getFullYear() + '-' + (nowDateUTC.getMonth() + 1) + '-' + nowDateUTC.getDate() + 'UTC+8'));\r\n // /** -28800000 */\r\n // const zoneTick = new Date().getTimezoneOffset() * 60 * 1000;\r\n // /** today 00:00:00 */\r\n // // const todayTickZone = todayTickUTC + zoneTick;\r\n // /** 43200000 (12:00:00) */\r\n // const dayHalfTick = 1000 * 60 * 60 * 12;\r\n // const dayTick = 1000 * 60 * 60 * 24;\r\n // const todayEndTickZone = todayTickZone + dayTick;\r\n // /** today 12:00:00 */\r\n // const todayHalfTickZone = todayTickZone + dayHalfTick;\r\n // // 已經經過半天?\r\n // const targetTodayPastHalfUTC = targetTickZone > todayHalfTickZone;\r\n // /** 現在年,parse的時間有時區差,要另外偏移回來 */\r\n // // const currentYearTickUTC = Date.parse(nowDateUTC.getFullYear() + '-01-01');\r\n // const currentYearTickZone = Date.parse(nowDateUTC.getFullYear() + '-01-01 UTC+8');\r\n // // const currentYearTickZone = currentYearTickUTC + zoneTick;\r\n\r\n\r\n // if (targetTickZone < currentYearTickZone) {\r\n // // OOO年O月O日,去年\r\n // return (targetDateUTC.getFullYear() - 1911) + '年' + (targetDateUTC.getMonth() + 1) + '月' + targetDateUTC.getDate() + '日';\r\n // } else if (targetTickZone < todayTickZone\r\n // || targetTickZone >= todayEndTickZone) {\r\n // // O月O日,昨日\r\n // return (targetDateUTC.getMonth() + 1) + '月' + targetDateUTC.getDate() + '日';\r\n // } else if (!targetTodayPastHalfUTC) {\r\n // // 上午 00:00\r\n // return '上午 ' + targetDateUTC.getHours().toString().padStart(2, '0') + ':' + targetDateUTC.getMinutes().toString().padStart(2, '0');\r\n // } else if (targetTodayPastHalfUTC) {\r\n // // 下午 00:00\r\n // return '下午 ' + (targetDateUTC.getHours() - 12).toString().padStart(2, '0') + ':' + targetDateUTC.getMinutes().toString().padStart(2, '0');\r\n // }\r\n\r\n // return '';\r\n }\r\n /** 2018/01/01 00:00:00 */\r\n convertTimeTickToTimeText1(ticks: number): string {\r\n const time = new Date(ticks);\r\n const timeString = time.getFullYear()\r\n + '/' + this.padNumber(time.getMonth() + 1)\r\n + '/' + this.padNumber(time.getDate())\r\n + ' ' + this.padNumber(time.getHours())\r\n + ':' + this.padNumber(time.getMinutes())\r\n + ':' + this.padNumber(time.getSeconds());\r\n\r\n return timeString;\r\n }\r\n /** 107/12/31 */\r\n convertTimeTickToTimeText2(ticks: number): string {\r\n const time = new Date(ticks);\r\n const timeString = (time.getFullYear() - 1911)\r\n + '/' + this.padNumber(time.getMonth() + 1)\r\n + '/' + this.padNumber(time.getDate());\r\n\r\n return timeString;\r\n }\r\n\r\n //// 剛剛、1分內、2分、1小時、昨天、前天、O月O日、OOO年O月O日\r\n // convertTimeTickToPastTimeText2(tick: number): string {\r\n // let nowDate = new Date();\r\n // let nowTick = nowDate.getTime();\r\n // let todayTick = Date.parse((nowDate.getFullYear() + '-' + (nowDate.getMonth() + 1) + '-' + nowDate.getDate()));\r\n // let todayDate = new Date(todayTick);\r\n // let todayPast = tick - todayTick;\r\n\r\n // let pastTick = nowTick - tick;\r\n\r\n // let sec10 = 1000 * 10;\r\n // let min1 = 1000 * 60;\r\n // let hour1 = 1000 * 60 * 60;\r\n // let ampm = todayPast < 43200000 ? '上午' : '下午';\r\n\r\n // if (pastTick < 1000 * 10) {\r\n\r\n // } else if (1000 * 10 <= pastTick && pastTick < 1000 * 60) {\r\n\r\n // } else if (1000 * 60 <= pastTick && pastTick < 1000 * 60) {\r\n\r\n // }\r\n // }\r\n\r\n /** 剩餘時間轉換:00:00:00 */\r\n convertLeftTimeTickToTimeText1(left_time_ticks: number): string {\r\n const ms = left_time_ticks;\r\n const hh = Math.floor(ms / (1000 * 60 * 60));\r\n const left_hh_ms = ms % (1000 * 60 * 60);\r\n const mm = Math.floor(left_hh_ms / (1000 * 60));\r\n const left_mm_ms = ms % (1000 * 60);\r\n const ss = Math.floor(left_mm_ms / (1000));\r\n\r\n return hh.toString().padStart(2, '0')\r\n + ':' + mm.toString().padStart(2, '0')\r\n + ':' + ss.toString().padStart(2, '0');\r\n }\r\n /** 剩餘時間轉換:00:00 (mm:ss) */\r\n convertLeftTimeTickToTimeText2(left_time_ticks: number): string {\r\n const ms = left_time_ticks;\r\n const mm = Math.floor(ms / (1000 * 60));\r\n const left_mm_ms = ms % (1000 * 60);\r\n const ss = Math.floor(left_mm_ms / (1000));\r\n\r\n return mm.toString().padStart(2, '0')\r\n + ':' + ss.toString().padStart(2, '0');\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /** AaaBbbCcc -> aaa-bbb-ccc */\r\n convertText_CamelCaseToLowerDash(text: string): string {\r\n if (!text || text.length === 0) {\r\n return '';\r\n }\r\n\r\n let temp = text[0].toLowerCase();\r\n\r\n for (let i = 1; i < text.length; i++) {\r\n const chr = text.charAt(i);\r\n if (!chr\r\n || isNumber(chr)) {\r\n temp += chr;\r\n } else if (chr === chr.toUpperCase()) {\r\n if (text[i - 1] === '-') {\r\n temp += chr.toLowerCase();\r\n } else {\r\n temp += '-' + chr.toLowerCase();\r\n }\r\n } else {\r\n temp += chr;\r\n }\r\n }\r\n return temp;\r\n }\r\n\r\n /** AaaBbbCcc -> aaa-bbb-ccc */\r\n convert_CamelCase_To_camel_dash_case(text: string): string {\r\n const result = text\r\n .split(/([A-Z]+[^A-Z]+)/)\r\n .filter(v => v.trim())\r\n .map((word) => {\r\n return word.toLowerCase();\r\n })\r\n .join('-');\r\n // console.log(text, ' to ', result);\r\n return result;\r\n }\r\n\r\n /** AaaBbbCcc -> aaa_bbb_ccc */\r\n convert_CamelCase_To_camel_case(text: string): string {\r\n const result = text\r\n .split(/([A-Z]+[^A-Z]+)/)\r\n .filter(v => v.trim())\r\n .map((word) => {\r\n return word.toLowerCase();\r\n })\r\n .join('_');\r\n // console.log(text, ' to ', result);\r\n return result;\r\n }\r\n\r\n intToHex36(num: number): string {\r\n return num.toString(36);\r\n }\r\n hex36ToInt(hex: string): number {\r\n return parseInt(hex, 36);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppConfigService {\r\n /** 啟用即時同步LOG */\r\n private static _enableSignalrLog: boolean = false;\r\n static get enableSignalrLog(): boolean {\r\n if (environment.production) { return false; }\r\n return AppConfigService._enableSignalrLog;\r\n }\r\n /** 同時檢索最大線程 */\r\n maxSearchTaskCount: number = 5;\r\n /** 啟用即時同步 */\r\n enableSignalr: boolean = true;\r\n\r\n\r\n\r\n /** 啟用DEBUG通知 */\r\n _enableNotification: boolean = false;\r\n get enableNotification(): boolean {\r\n if (environment.production) { return false; }\r\n return this._enableNotification;\r\n }\r\n\r\n constructor() { }\r\n}\r\n","import { SystemAnnouncePopupComponent } from './../../../lwlib/src/system-announce-popup/system-announce-popup.component';\r\nimport { Component, OnInit, HostListener, AfterViewInit, ComponentRef, Renderer2 } from '@angular/core';\r\nimport { NotificationService } from 'projects/lwlib/src/notification/notification.service';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { IdlerService } from 'projects/lwlib/src/idler/idler.service';\r\nimport { CookieService } from 'ngx-cookie';\r\nimport { InitService } from 'projects/lwlib/src/init/init.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { AppConfigService } from 'projects/desktop/src/app/app-config.service';\r\nimport { Observable, Subscriber, of, from } from 'rxjs';\r\nimport { MaintenancePopupOpenerService } from 'projects/lwlib/src/maintenance-popup/maintenance-popup-opener.service';\r\nimport { DangerWarningPopupOpenerService } from 'projects/lwlib/src/danger-warning-popup/danger-warning-popup-opener.service';\r\nimport { LoginInvalidPopupOpenerService } from 'projects/lwlib/src/login-invalid-popup/login-invalid-popup-opener.service';\r\nimport { PayService } from 'projects/lwlib/src/pay-tip-popup/pay.service';\r\nimport { PayStatusResult } from 'projects/lwlib/src/pay-tip-popup/pay-status-result';\r\nimport { PayStatusId } from 'projects/lwlib/src/pay-tip-popup/pay-status-id.enum';\r\nimport { PayTipPopupOpenerService } from 'projects/lwlib/src/pay-tip-popup/pay-tip-popup-opener.service';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { tap, concatMap, delay, filter, map } from 'rxjs/operators';\r\nimport { PayTipPopupComponent } from 'projects/lwlib/src/pay-tip-popup/pay-tip-popup.component';\r\nimport { NotifyService } from 'projects/lwlib/src/notify/notify.service';\r\nimport { environment } from '../environments/environment';\r\nimport { Router } from '@angular/router';\r\nimport { NetService } from '../../../lwlib/src/net.service';\r\nimport { LoginStatus } from './app.service';\r\nimport { SwUpdate, VersionReadyEvent } from '@angular/service-worker';\r\nimport { MaterialHelper } from '../../../lwlib/src/material-helper';\r\nimport { NewUpdatePopupComponent } from '../../../lwlib/src/new-update-popup/new-update-popup.component';\r\nimport { TeamAnnouncePopupComponent } from '../../../lwlib/src/team-announce-popup/team-announce-popup.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PayInfoOverSaveLimitPopupComponent } from 'projects/lwlib/src/pay-info-over-save-limit-popup/pay-info-over-save-limit-popup.component';\r\nimport { PayInfoOverTimeLimitPopupComponent } from 'projects/lwlib/src/pay-info-over-time-limit-popup/pay-info-over-time-limit-popup.component';\r\nimport { PlanService } from 'projects/lwlib/src/plan/plan.service';\r\nimport { PermissionSettingPopupComponent } from 'projects/lwlib/src/permission-setting-popup/permission-setting-popup.component';\r\nimport { PrivateCasePopupComponent } from 'projects/lwlib/src/private-case-popup/private-case-popup.component';\r\nimport { ConfirmPopupComponent } from 'projects/lwlib/src/confirm-popup/confirm-popup.component';\r\nimport { BlockGuestFunctionPopupComponent } from 'projects/lwlib/src/block-guest-function-popup/block-guest-function-popup.component';\r\n\r\n\r\n\r\n// window.document.onload = () => {\r\n// console.log('window doc onload');\r\n// };\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit, AfterViewInit {\r\n\r\n signalIniting: boolean = false;\r\n signalInited: boolean = false;\r\n payBlockPopup: ComponentRef;\r\n\r\n constructor(\r\n private router: Router,\r\n private appcfg: AppConfigService,\r\n private service: AppService,\r\n private notificationService: NotificationService,\r\n private idlerService: IdlerService,\r\n private cookieService: CookieService,\r\n private initService: InitService,\r\n public appCommonService: AppCommonService,\r\n\r\n private maintenancePopupOpenerService: MaintenancePopupOpenerService,\r\n private dangerWarningPopupOpenerService: DangerWarningPopupOpenerService,\r\n private loginInvalidPopupOpenerService: LoginInvalidPopupOpenerService,\r\n private payTipPopupOpenerService: PayTipPopupOpenerService,\r\n private payService: PayService,\r\n private notifyService: NotifyService,\r\n private net: NetService,\r\n private swUpdate: SwUpdate,\r\n private matDialog: MatDialog,\r\n private planService: PlanService,\r\n // private clickManagerService: ClickManagerService,\r\n ) {\r\n // renderer.listen('document', 'touchstart')\r\n }\r\n\r\n ngOnInit() {\r\n // const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n // ConfirmPopupComponent,\r\n // {\r\n // panelClass: ['no-padding'],\r\n // width: '95vw',\r\n // maxWidth: '400px',\r\n // maxHeight: document.body.clientHeight - 40,\r\n // autoFocus: false,\r\n // disableClose: false,\r\n // }\r\n // ));\r\n this.service.refreshLoginStatus().subscribe();\r\n\r\n this.idlerService.userActive('App初始化, (app.component.ts)');\r\n this.initService.register({\r\n target: [[ActionName.Root, ActionName.Note]],\r\n onComplete: () => {\r\n // if (environment.production) {\r\n // this.connectSignalrDelay();\r\n // } else {\r\n // this.connectSignalrDelay();\r\n // }\r\n\r\n // 連線即時同步\r\n console.log('[signalr]app init connect to hub.');\r\n this.service.getConnectHub()\r\n .pipe(\r\n tap(c => {\r\n console.log('[signalr]setup status event');\r\n\r\n c.status.pipe(\r\n concatMap(s => {\r\n if (s.value === 1) {\r\n if (this.service.signalrReconnecting) {\r\n console.log('[signalr]已重新連線');\r\n this.service.signalrReconnecting = false;\r\n\r\n console.log('[signalr]檢查登入狀態');\r\n return this.service.refreshLoginStatus()\r\n .pipe(\r\n tap(loginStatus => {\r\n if (loginStatus === LoginStatus.Guest) {\r\n console.log('[signalr]登入失效');\r\n this.service.isForceSignalrStop = true;\r\n c.stop();\r\n this.loginInvalidPopupOpenerService.openPopup();\r\n this.service.onSignlarConnected.next(false);\r\n } else {\r\n console.log('[signalr]有效登入');\r\n this.service.onSignlarConnected.next(true);\r\n }\r\n })\r\n );\r\n } else {\r\n console.log('[signalr]已連線');\r\n this.service.onSignlarConnected.next(true);\r\n }\r\n } else if (s.value === 2) {\r\n console.log('[signalr]嘗試重新連線');\r\n this.service.signalrReconnecting = true;\r\n this.service.onSignlarConnected.next(false);\r\n } else if (s.value === 4) {\r\n console.log('[signalr]連線中斷');\r\n this.service.onSignlarConnected.next(false);\r\n\r\n if (!this.service.isForceSignalrStop) {\r\n console.log('[signalr]5秒後重新連線');\r\n setTimeout(() => { c.start(); }, 5000);\r\n }\r\n }\r\n\r\n return of(s);\r\n })\r\n )\r\n .subscribe();\r\n }),\r\n tap(c => {\r\n console.log('[signalr]setup listener');\r\n this.setupSignlaRSystemListener();\r\n }),\r\n tap(c => {\r\n console.log('[signalr]connecting');\r\n c.start();\r\n }),\r\n // concatMap(c => {\r\n // console.log('[signalr]connecting');\r\n // return c.start();\r\n // }),\r\n )\r\n .subscribe();\r\n\r\n // 檢查是否登入中\r\n this.service.isLogin$()\r\n .pipe(\r\n // 檢查付費狀態\r\n concatMap((isLogin: boolean) => {\r\n if (isLogin) {\r\n return this.planService.checkPlanStatus(this.matDialog)\r\n .pipe(\r\n concatMap(() => this.checkSystemAnnounce()),\r\n );\r\n } else {\r\n return of(1);\r\n }\r\n }),\r\n )\r\n .subscribe();\r\n\r\n\r\n }\r\n });\r\n\r\n if (environment.production) {\r\n console['_log'] = console.log;\r\n console.log = () => { };\r\n } else {\r\n // this.testPopup();\r\n // this.openPictureCropPopup();\r\n // this.openTeamAnnoucePopup();\r\n }\r\n\r\n this.notificationService.addNormal(`是否啟用版本檢查${this.swUpdate.isEnabled}`);\r\n if (this.swUpdate.isEnabled) {\r\n this.swUpdate.versionUpdates\r\n .pipe(\r\n filter((evt): evt is VersionReadyEvent => (evt as VersionReadyEvent).type === 'VERSION_READY'),\r\n map(evt => ({\r\n type: 'UPDATE_AVAILABLE',\r\n current: evt.currentVersion,\r\n available: evt.latestVersion,\r\n }))\r\n )\r\n .subscribe(() => {\r\n this.swUpdate.activateUpdate()\r\n .then((result) => {\r\n this.openNewUpdatePopup();\r\n });\r\n });\r\n\r\n // this.swUpdate.available.subscribe((e) => {\r\n // this.notificationService.addWarning('swUpdate.available, 發現新版本,建議更新');\r\n // this.openNewUpdatePopup();\r\n // // console.error(e);\r\n // });\r\n // this.notificationService.addNormal('檢查是否有新版本');\r\n // this.swUpdate.checkForUpdate()\r\n // .then(() => {\r\n // this.notificationService.addNormal('檢查結束');\r\n // });\r\n }\r\n\r\n this.service.onOpenPopupBlockGuestFunction = () => {\r\n this.openPopupBlockGuestFunction();\r\n }\r\n // console.error('app init end');\r\n // this.openNewUpdatePopup();\r\n\r\n // this.openSystemAnnounce('提升25%讀取效率,優化使用者體驗。');\r\n\r\n // this.checkSystemAnnounce().subscribe({\r\n // next: (v) => {\r\n // console.log(v);\r\n // if (v) {\r\n // this.openSystemAnnounce(v);\r\n // }\r\n // },\r\n // })\r\n\r\n\r\n }\r\n ngAfterViewInit(): void {\r\n // this.authService.authState.subscribe({\r\n // next: v => {\r\n // if (((v != null && v.provider == 'FACEBOOK') || v == null)\r\n // && !this.signalIniting\r\n // && !this.signalInited) {\r\n // this.signalIniting = true;\r\n\r\n // }\r\n // },\r\n // })\r\n // this.openNewUpdatePopup();\r\n }\r\n\r\n openNewUpdatePopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n NewUpdatePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n disableClose: true,\r\n }\r\n ));\r\n }\r\n openTeamAnnoucePopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n TeamAnnouncePopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '500px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n }\r\n openSystemAnnounce(content: string): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n SystemAnnouncePopupComponent,\r\n {\r\n panelClass: ['overflow-view', 'no-padding'],\r\n width: '600px',\r\n height: '480px',\r\n autoFocus: false,\r\n }\r\n ));\r\n const comp = dlRef.componentInstance;\r\n comp.onClose = () => {\r\n dlRef.close();\r\n };\r\n comp.content = content;\r\n\r\n }\r\n checkSystemAnnounce(): Observable {\r\n return this.net.get(`/user/check_announce`)\r\n .pipe(\r\n tap((v) => {\r\n if (v) {\r\n const jo = JSON.parse(v.overwrite_json);\r\n let text = jo.text;\r\n text = text.replace(/^說明:/, '');\r\n text = `【${jo.prop}】${jo.title}`\r\n + '\\n' + text;\r\n this.openSystemAnnounce(text);\r\n }\r\n })\r\n )\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n connectSignalrDelay(): void {\r\n setTimeout(() => {\r\n if (this.appcfg.enableSignalr) {\r\n this.service.connectHub().subscribe({\r\n next: () => {\r\n console.log('signalr connected');\r\n // console.log(v);\r\n this.signalIniting = false;\r\n this.signalInited = true;\r\n this.setupSignlaRSystemListener();\r\n },\r\n error: () => {\r\n // console.log(err);\r\n },\r\n complete: () => {\r\n console.log('signlar connect complete');\r\n }\r\n });\r\n }\r\n }, 0);\r\n }\r\n\r\n connectSignalr2(): void {\r\n if (this.appcfg.enableSignalr) {\r\n this.service.connectHub().subscribe({\r\n next: () => {\r\n\r\n },\r\n error: () => {\r\n // console.log(err);\r\n },\r\n complete: () => {\r\n console.log('signlar connect complete');\r\n }\r\n });\r\n }\r\n }\r\n\r\n testTime(): void {\r\n // this.appCommonService.getTimeTestArray().forEach((t, i) => {\r\n // const time = this.appCommonService.convertTimeTickToPastTimeText1(t);\r\n // console.log(i, time);\r\n // });\r\n this.appCommonService.getTimeTestArray2().forEach((v, i) => {\r\n const time = this.appCommonService.convertTimeTickPastText1(v[0], v[1]);\r\n console.log(i, time, v[1], v[2]);\r\n });\r\n }\r\n\r\n\r\n testPopup(): void {\r\n }\r\n\r\n private openPopupBlockGuestFunction(): void {\r\n // private matDialog: MatDialog,\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n BlockGuestFunctionPopupComponent,\r\n {\r\n panelClass: ['overflow-view'],\r\n width: '85vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const comp = dlRef.componentInstance;\r\n comp.onClose = () => {\r\n dlRef.close();\r\n }\r\n\r\n }\r\n\r\n\r\n // 活動觸發\r\n touchStartTime: number;\r\n touchStart: Touch;\r\n @HostListener('document:touchstart', ['$event'])\r\n globalMobileCompatibleClickStart(ev: TouchEvent): void {\r\n if (!this.net.isIOS) { return; }\r\n\r\n this.touchStartTime = ev.timeStamp;\r\n console.log(ev);\r\n if (ev.touches.length > 0) {\r\n this.touchStart = ev.changedTouches.item(0);\r\n }\r\n }\r\n @HostListener('document:touchend', ['$event'])\r\n globalMobileCompatibleClick(ev: TouchEvent): void {\r\n // alert(this.net.debugLog);\r\n\r\n if (this.touchStart) {\r\n const currentTouch = ev.changedTouches.item(0);\r\n const distance = Math.sqrt(\r\n Math.abs(\r\n (currentTouch.clientY - this.touchStart.clientY) ^ 2\r\n + (currentTouch.clientX - this.touchStart.clientX) ^ 2\r\n )\r\n );\r\n // console.log(ev);\r\n if (distance == 0) {\r\n // const anyEv: any = ev;\r\n const el: any = document\r\n .elementFromPoint(currentTouch.clientX, currentTouch.clientY);\r\n if (el.click) {\r\n el.click();\r\n }\r\n }\r\n\r\n this.touchStart = null;\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n idleClick($ev: MouseEvent): void {\r\n this.idlerService.userActive('滑鼠點擊, (app)');\r\n }\r\n @HostListener('document:mousemove', ['$event'])\r\n idleMousemove($ev: MouseEvent): void {\r\n this.idlerService.userActive('滑鼠移動, (app)');\r\n }\r\n @HostListener('document:mousewheel', ['$event'])\r\n idleMousewheel($ev: MouseEvent): void {\r\n this.idlerService.userActive('滑鼠滾輪, (app)');\r\n }\r\n @HostListener('document:keydown', ['$event'])\r\n idleKeydown($ev: KeyboardEvent): void {\r\n\r\n this.idlerService.userActive(`鍵盤按下:${$ev.key}, (app)`);\r\n // if (ev.keyCode === 81) {\r\n // const sub = this.payService.getPayStatus().subscribe((result: PayStatusResult) => {\r\n // if (result.pay_status_id === PayStatusId.PaidMember) {\r\n // // 已付費會員\r\n // this.notificationService.addNormal('已付費會員');\r\n // } else if (result.pay_status_id === PayStatusId.InBuffTime\r\n // || result.pay_status_id === PayStatusId.InFreeTime) {\r\n // // 在可使用時段中\r\n // this.notificationService.addWarning('功能使用中,剩餘時間:'\r\n // + this.appCommonService.convertLeftTimeTickToTimeText1(result.buff_time - new Date().getTime()));\r\n // } else if (result.pay_status_id === PayStatusId.OverTime\r\n // || result.pay_status_id === PayStatusId.InBlockTime) {\r\n // // 超時顯示彈窗\r\n // this.notificationService.addWarning('功能封鎖中,剩餘時間:'\r\n // + this.appCommonService.convertLeftTimeTickToTimeText1(result.block_time - new Date().getTime()));\r\n // } else {\r\n // // 取值問題\r\n // this.notificationService.addError('取值問題');\r\n // }\r\n // sub.unsubscribe();\r\n // });\r\n // }\r\n }\r\n\r\n /**監聽S發送 */\r\n private setupSignlaRSystemListener(): void {\r\n // 接收S連線檢查\r\n this.service.addGetSignlaRSystemListener('PA').subscribe((sn) => {\r\n // if (!environment.production) {\r\n // }\r\n this.notificationService.addNormal(`回應S活動檢查:${sn}, 是否活動中:${!this.idlerService.isIdle}`);\r\n\r\n // 回傳檢查結果\r\n const data = {\r\n token: this.cookieService.get('token'),\r\n sn: sn,\r\n idle: this.idlerService.isIdle\r\n };\r\n this.service.sendToServer('PA', data).then(() => {\r\n // console.log(v);\r\n });\r\n });\r\n\r\n // 維護通知\r\n this.service.addGetSignlaRSystemListener('maintain').subscribe((data: { time: number, duration: number }) => {\r\n // this.notificationService.addWarning('接收維護通知');\r\n this.maintenancePopupOpenerService.openPopup(data.time, data.duration);\r\n });\r\n\r\n // 網頁更新\r\n this.service.addGetSignlaRSystemListener('webupdate').subscribe((data: { time: number, duration: number }) => {\r\n // this.notificationService.addWarning('接收維護通知');\r\n this.maintenancePopupOpenerService.openPopup(data.time, 0);\r\n });\r\n\r\n // 危險警告\r\n this.service.addGetSignlaRSystemListener('danger_warning').subscribe(() => {\r\n // this.notificationService.addError('接收危險警告');\r\n this.dangerWarningPopupOpenerService.openPopup();\r\n });\r\n\r\n // 登入失效\r\n this.service.addGetSignlaRSystemListener('login_invalid').subscribe(() => {\r\n // this.notificationService.addError('接收登入失效');\r\n if (!this.service.logoutPopupBlock) {\r\n this.loginInvalidPopupOpenerService.openPopup();\r\n }\r\n });\r\n\r\n // 通知\r\n this.service.addGetSignlaRSystemListener('notify').subscribe((data: { notify_id: string }) => {\r\n this.notifyService.receiveNewNotify(data.notify_id);\r\n // console.log(data);\r\n // this.service.get(`user/notify/${data.notify_id}`)\r\n // .pipe(\r\n // map((notify: Notify) => {\r\n // console.log(notify);\r\n // if (notify == null) { return null; }\r\n // const v = Serializable.extend(notify, new Notify());\r\n // return v;\r\n // }),\r\n // tap((notify: Notify) => {\r\n // if (notify != null) {\r\n // this.notifyService.receiveNewNotify(notify);\r\n // }\r\n // })\r\n // ).subscribe();\r\n });\r\n\r\n // 關閉通知視窗\r\n this.service.addGetSignlaRSystemListener('close_notify_popup').subscribe(() => {\r\n console.log('close_notify_popup');\r\n\r\n this.notifyService.closeNotifyPopupTrigger$.next(true);\r\n });\r\n }\r\n\r\n\r\n signalrOnConnectObserver(): Observable {\r\n return Observable.create((subsc: Subscriber) => {\r\n const signalrSubsc = this.service.onSignlarConnected.subscribe({\r\n next: (v) => {\r\n if (v) {\r\n subsc.next(v);\r\n subsc.complete();\r\n signalrSubsc.unsubscribe();\r\n }\r\n }\r\n });\r\n\r\n return () => { };\r\n });\r\n }\r\n\r\n\r\n /** 檢查收費狀態 */\r\n handlePayStatusResult(result: PayStatusResult): void {\r\n this.payService.block_time_tick = result.block_time;\r\n this.payService.buff_time_tick = result.buff_time;\r\n this.payService.is_continue = result.is_continue;\r\n this.payService.pay_status_id = result.pay_status_id;\r\n\r\n // const blockEndLeft = (this.payService.block_time_tick - new Date().getTime()) / 1000;\r\n // const freeEndLeft = (this.payService.buff_time_tick - new Date().getTime()) / 1000;\r\n // if (blockEndLeft > 0) {\r\n // console.log(`status:${PayStatusId[this.payService.pay_status_id]}, block end left:${blockEndLeft}s`);\r\n // } else if (freeEndLeft > 0) {\r\n // console.log(`status:${PayStatusId[this.payService.pay_status_id]}, free end left:${freeEndLeft}s`);\r\n // }\r\n\r\n // 是付費使用者\r\n if (this.payService.pay_status_id === PayStatusId.PaidMember) {\r\n // 如果彈窗有開啟,就關閉\r\n if (this.payBlockPopup != null) {\r\n this.payBlockPopup.instance.closePopup();\r\n }\r\n } else if (this.payService.pay_status_id === PayStatusId.InBlockTime) {\r\n // 封鎖中\r\n if (this.payBlockPopup == null) {\r\n console.log('open popup, block time');\r\n this.payService.popup_opened = true;\r\n this.payBlockPopup = this.payTipPopupOpenerService.openPopup(() => {\r\n this.payService.popup_opened = false;\r\n this.payBlockPopup = null;\r\n });\r\n }\r\n } else if (this.payService.pay_status_id === PayStatusId.OverTime) {\r\n // 封鎖中\r\n if (this.payBlockPopup == null) {\r\n console.log('open popup, over time');\r\n this.payService.popup_opened = true;\r\n this.payBlockPopup = this.payTipPopupOpenerService.openPopup(() => {\r\n this.payService.popup_opened = false;\r\n this.payBlockPopup = null;\r\n });\r\n // popup.instance.blockToTime\r\n }\r\n }\r\n }\r\n payStatusCheckLoop(): void {\r\n // let waitRequest: boolean = false;\r\n // 初始請求狀態\r\n // waitRequest = true;\r\n // this.payService.updatePayStatus().subscribe(result => {\r\n // waitRequest = false;\r\n // });\r\n\r\n // let requestHash: number = 0;\r\n // let popup: ComponentRef;\r\n\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { SystemAnnouncePopupModule } from './../../../lwlib/src/system-announce-popup/system-announce-popup.module';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { environment } from '../environments/environment';\r\n\r\n/** plugin */\r\nimport { CookieModule } from 'ngx-cookie';\r\nimport { SignalRModule } from 'ng2-signalr';\r\nimport { LZStringModule, LZStringService } from 'ng-lz-string';\r\n\r\n/** App */\r\nimport { AppComponent } from './app.component';\r\n// import { AppRoutingModule } from './app-routing.module';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\n\r\n/** system */\r\nimport { NotificationModule } from 'projects/lwlib/src/notification/notification.module';\r\nimport { IdlerModule } from 'projects/lwlib/src/idler/idler.module';\r\nimport { LoadingIconModule } from 'projects/lwlib/src/loading-icon/loading-icon.module';\r\n\r\n/** Root頁面 - 不須登入 */\r\nimport { RootPasswordChangeModule } from './root/root-password-change/root-password-change.module';\r\n\r\n// import { RootMemberProfileEditModule } from './root/root-member-profile-edit/root-member-profile-edit.module';\r\n\r\n/** 彈窗 */\r\n// import { LawRuleFastBagPopupModule } from 'projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-popup.module';\r\nimport { CaseTagPopupModule } from 'projects/lwlib/src/case-tag-popup/case-tag-popup.module';\r\nimport { CommentPopupModule } from 'projects/lwlib/src/comment-popup/comment-popup.module';\r\nimport { ComposeSearchPopupModule } from 'projects/lwlib/src/compose-search-popup/compose-search-popup.module';\r\nimport { CreateCategoryPopupModule } from 'projects/lwlib/src/create-category-popup/create-category-popup.module';\r\nimport { CreateSubcategoryPopupModule } from 'projects/lwlib/src/create-subcategory-popup/create-subcategory-popup.module';\r\nimport { DeleteConfirmPopupModule } from 'projects/lwlib/src/delete-confirm-popup/delete-confirm-popup.module';\r\nimport { DoubleLoginPopupModule } from 'projects/lwlib/src/double-login-popup/double-login-popup.module';\r\nimport { EditCategoryPopupModule } from 'projects/lwlib/src/edit-category-popup/edit-category-popup.module';\r\nimport { EditSnPopupModule } from 'projects/lwlib/src/edit-sn-popup/edit-sn-popup.module';\r\nimport { FilterPopupModule } from 'projects/lwlib/src/filter-popup/filter-popup.module';\r\nimport { PersonalConfigPopupModule } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.module';\r\nimport { RenamePopupModule } from 'projects/lwlib/src/rename-popup/rename-popup.module';\r\nimport { CompleteSearchPopupModule } from 'projects/lwlib/src/complete-search-popup/complete-search-popup.module';\r\nimport { RecommendMemberPopupModule } from 'projects/lwlib/src/recommend-member-popup/recommend-member-popup.module';\r\nimport { MaintenancePopupModule } from 'projects/lwlib/src/maintenance-popup/maintenance-popup.module';\r\nimport { DangerWarningPopupModule } from 'projects/lwlib/src/danger-warning-popup/danger-warning-popup.module';\r\nimport { LoginInvalidPopupModule } from 'projects/lwlib/src/login-invalid-popup/login-invalid-popup.module';\r\nimport { DisconnectedPopupModule } from 'projects/lwlib/src/disconnected-popup/disconnected-popup.module';\r\nimport { MemberProfileEditPopupModule } from 'projects/lwlib/src/member-profile-edit-popup/member-profile-edit-popup.module';\r\nimport { FixProfileNotifyPopupModule } from 'projects/lwlib/src/fix-profile-notify-popup/fix-profile-notify-popup.module';\r\nimport { PayTipPopupModule } from 'projects/lwlib/src/pay-tip-popup/pay-tip-popup.module';\r\nimport { PayTipConfigPersonalPopupModule } from 'projects/lwlib/src/pay-tip-config-personal-popup/pay-tip-config-personal-popup.module';\r\nimport { PayTipConfigGlobalPopupModule } from 'projects/lwlib/src/pay-tip-config-global-popup/pay-tip-config-global-popup.module';\r\nimport { MemberPermissionConfigPopupModule } from 'projects/lwlib/src/member-permission-config-popup/member-permission-config-popup.module';\r\nimport { ConcatPopupModule } from 'projects/lwlib/src/concat-popup/concat-popup.module';\r\nimport { CompleteSearchTipPopupModule } from 'projects/lwlib/src/complete-search-tip-popup/complete-search-tip-popup.module';\r\nimport { RelateLawRulePopupModule } from 'projects/lwlib/src/relate-law-rule-popup/relate-law-rule-popup.module';\r\nimport { LawRuleEvolutionPopupModule } from 'projects/lwlib/src/law-rule-evolution-popup/law-rule-evolution-popup.module';\r\nimport { SummaryFilterPopupModule } from 'projects/lwlib/src/summary-filter-popup/summary-filter-popup.module';\r\nimport { LawRuleEvolutionTimeEditorPopupModule } from 'projects/lwlib/src/law-rule-evolution-time-editor-popup/law-rule-evolution-time-editor-popup.module';\r\nimport { BookmarkRenamePopupModule } from 'projects/lwlib/src/bookmark-rename-popup/bookmark-rename-popup.module';\r\nimport { JudgmentHistoryPopupModule } from 'projects/lwlib/src/judgment-history-popup/judgment-history-popup.module';\r\nimport { PrintConfigPopupModule } from 'projects/lwlib/src/print-config-popup/print-config-popup.module';\r\nimport { PasswordChangePopupModule } from 'projects/lwlib/src/password-change-popup/password-change-popup.module';\r\nimport { NewUpdatePopupModule } from 'projects/lwlib/src/new-update-popup/new-update-popup.module';\r\nimport { RewardPointTipPopupModule } from 'projects/lwlib/src/reward-point-tip-popup/reward-point-tip-popup.module';\r\nimport { PhoneSettingPopupModule } from 'projects/lwlib/src/phone-setting-popup/phone-setting-popup.module';\r\nimport { LineIdSettingPopupModule } from 'projects/lwlib/src/line-id-setting-popup/line-id-setting-popup.module';\r\nimport { FacebookIdSettingPopupModule } from 'projects/lwlib/src/facebook-id-setting-popup/facebook-id-setting-popup.module';\r\nimport { WechatIdSettingPopupModule } from 'projects/lwlib/src/wechat-id-setting-popup/wechat-id-setting-popup.module';\r\nimport { TwitterIdSettingPopupModule } from 'projects/lwlib/src/twitter-id-setting-popup/twitter-id-setting-popup.module';\r\nimport { EmailSettingPopupModule } from 'projects/lwlib/src/email-setting-popup/email-setting-popup.module';\r\nimport { MemberProfileChangePopupModule } from 'projects/lwlib/src/member-profile-change-popup/member-profile-change-popup.module';\r\nimport { WebsiteSettingPopupModule } from 'projects/lwlib/src/website-setting-popup/website-setting-popup.module';\r\nimport { IntroductionSettingPopupModule } from 'projects/lwlib/src/introduction-setting-popup/introduction-setting-popup.module';\r\n\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SafeUrlPipe } from 'projects/lwlib/src/safe-url.pipe';\r\nimport { ScrollSmoothDirective } from 'projects/lwlib/src/scroll-smooth.directive';\r\nimport { SummaryWindowModule } from 'projects/lwlib/src/summary-window/summary-window.module';\r\n// import { RootMemberProfileManagementNewModule } from './root/root-member-profile-management-new/root-member-profile-management-new.module';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { SuccesTipModule } from 'projects/lwlib/src/succes-tip/succes-tip.module';\r\nimport { PictureCropPopupModule } from 'projects/lwlib/src/picture-crop-popup/picture-crop-popup.module';\r\nimport { PutInNotePopupModule } from 'projects/lwlib/src/put-in-note-popup/put-in-note-popup.module';\r\nimport { PutInNoteCheckPopupModule } from 'projects/lwlib/src/put-in-note-check-popup/put-in-note-check-popup.module';\r\nimport { PutInNoteSuccessPopupModule } from 'projects/lwlib/src/put-in-note-success-popup/put-in-note-success-popup.module';\r\nimport { TextInputPopupModule } from 'projects/lwlib/src/text-input-popup/text-input-popup.module';\r\nimport { TeamNoteStatusPopupModule } from 'projects/lwlib/src/team-note-status-popup/team-note-status-popup.module';\r\nimport { TeamAnnouncePopupModule } from 'projects/lwlib/src/team-announce-popup/team-announce-popup.module';\r\nimport { EditCategoryPopup2Module } from 'projects/lwlib/src/edit-category-popup2/edit-category-popup2.module';\r\nimport { MemberSelectPopupModule } from 'projects/lwlib/src/member-select-popup/member-select-popup.module';\r\nimport { CreateCategoryPopup2Module } from 'projects/lwlib/src/create-category-popup2/create-category-popup2.module';\r\nimport { FilterMeetMemberPopupModule } from 'projects/lwlib/src/filter-meet-member-popup/filter-meet-member-popup.module';\r\nimport { CaseDuplicateWarningPopupModule } from 'projects/lwlib/src/case-duplicate-warning-popup/case-duplicate-warning-popup.module';\r\nimport { TeamNoteDownloadLogPopupModule } from 'projects/lwlib/src/team-note-download-log-popup/team-note-download-log-popup.module';\r\nimport { TeamMemberOptionPopupModule } from 'projects/lwlib/src/team-member-option-popup/team-member-option-popup.module';\r\nimport { ConfirmPopupModule } from 'projects/lwlib/src/confirm-popup/confirm-popup.module';\r\nimport { NoteEvaluatePointPopupModule } from 'projects/lwlib/src/note-evaluate-point-popup/note-evaluate-point-popup.module';\r\nimport { PermissionConfigPopupModule } from 'projects/lwlib/src/permission-config-popup/permission-config-popup.module';\r\nimport { ContactSupportPopupModule } from 'projects/lwlib/src/contact-support-popup/contact-support-popup.module';\r\nimport { NotifyModule } from 'projects/lwlib/src/notify/notify.module';\r\nimport { LawRuleFastBagPopupModule } from 'projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-popup.module';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { DeviceCheckerGuard } from 'projects/lwlib/src/guard/device-checker.guard';\r\nimport { RootRoutingModule } from './root-routing.module';\r\nimport { TeamNoteOpenLogPopupModule } from '../../../lwlib/src/team-note-open-log-popup/team-note-open-log-popup.module';\r\nimport { CheckinTeamFilterPopupModule } from '../../../lwlib/src/checkin-team-filter-popup/checkin-team-filter-popup.module';\r\nimport { CasePropertyModule } from 'projects/lwlib/src/case-property/case-property.module';\r\nimport { PayInfoOverSaveLimitPopupModule } from 'projects/lwlib/src/pay-info-over-save-limit-popup/pay-info-over-save-limit-popup.module';\r\nimport { PayInfoOverTimeLimitPopupModule } from 'projects/lwlib/src/pay-info-over-time-limit-popup/pay-info-over-time-limit-popup.module';\r\nimport { NoteConfigPopupModule } from 'projects/lwlib/src/note-config-popup/note-config-popup.module';\r\nimport { SaveCountLimitPopupModule } from 'projects/lwlib/src/save-count-limit-popup/save-count-limit-popup.module';\r\nimport { PermissionSettingPopupModule } from 'projects/lwlib/src/permission-setting-popup/permission-setting-popup.module';\r\nimport { PrivateCasePopupModule } from 'projects/lwlib/src/private-case-popup/private-case-popup.module';\r\nimport { BlockGuestFunctionPopupModule } from 'projects/lwlib/src/block-guest-function-popup/block-guest-function-popup.module';\r\nimport { GuestLoginPopupModule } from 'projects/lwlib/src/guest-login-popup/guest-login-popup.module';\r\nimport { GuestTimeupPopupModule } from 'projects/lwlib/src/guest-timeup-popup/guest-timeup-popup.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n // BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n CookieModule.forRoot(),\r\n\r\n // 全域通用\r\n LoadingIconModule,\r\n NotificationModule,\r\n IdlerModule,\r\n FormsModule,\r\n\r\n // 插件\r\n SignalRModule.forRoot(AppService.createSignalRConfig),\r\n LZStringModule,\r\n // DeviceDetectorModule.forRoot(),\r\n MatDialogModule,\r\n // MatAutocompleteModule,\r\n\r\n // 根頁面\r\n RootPasswordChangeModule,\r\n // RootShareModule,\r\n // RootStopMobileViewModule,\r\n // RootVerifyPageModule,\r\n // RootLogoutJumpPageModule,\r\n // RootRedirModule,\r\n // RootMemberProfileManagementNewModule,\r\n // RootMemberProfileEditModule,\r\n\r\n // // 筆記\r\n // RootNoteWorkJudgmentModule,\r\n // RootNoteWorkLawRuleModule,\r\n // RootNoteWorkJudicialInterpretModule,\r\n\r\n // 舊版頁面\r\n // RootNoteModule,\r\n // RootPrintModule,\r\n // RootManagementOldModule,\r\n\r\n // 視窗\r\n SummaryWindowModule,\r\n\r\n // 提示\r\n SuccesTipModule,\r\n\r\n // 通知\r\n NotifyModule,\r\n\r\n // 常用\r\n CasePropertyModule,\r\n\r\n\r\n // 彈窗\r\n LawRuleFastBagPopupModule,\r\n CaseTagPopupModule,\r\n CommentPopupModule,\r\n ComposeSearchPopupModule,\r\n CreateCategoryPopupModule,\r\n CreateSubcategoryPopupModule,\r\n DeleteConfirmPopupModule,\r\n DoubleLoginPopupModule,\r\n EditCategoryPopupModule,\r\n EditSnPopupModule,\r\n FilterPopupModule,\r\n PersonalConfigPopupModule,\r\n RenamePopupModule,\r\n CompleteSearchPopupModule,\r\n RecommendMemberPopupModule,\r\n RelateLawRulePopupModule,\r\n LawRuleEvolutionPopupModule,\r\n SummaryFilterPopupModule,\r\n LawRuleEvolutionTimeEditorPopupModule,\r\n PrintConfigPopupModule,\r\n\r\n PayTipPopupModule,\r\n PayTipConfigPersonalPopupModule,\r\n PayTipConfigGlobalPopupModule,\r\n MemberPermissionConfigPopupModule,\r\n ConcatPopupModule,\r\n CompleteSearchTipPopupModule,\r\n\r\n MaintenancePopupModule,\r\n DangerWarningPopupModule,\r\n LoginInvalidPopupModule,\r\n DisconnectedPopupModule,\r\n\r\n MemberProfileEditPopupModule,\r\n FixProfileNotifyPopupModule,\r\n\r\n PasswordChangePopupModule,\r\n BookmarkRenamePopupModule,\r\n JudgmentHistoryPopupModule,\r\n NewUpdatePopupModule,\r\n RewardPointTipPopupModule,\r\n PhoneSettingPopupModule,\r\n LineIdSettingPopupModule,\r\n FacebookIdSettingPopupModule,\r\n WechatIdSettingPopupModule,\r\n TwitterIdSettingPopupModule,\r\n EmailSettingPopupModule,\r\n MemberProfileChangePopupModule,\r\n WebsiteSettingPopupModule,\r\n IntroductionSettingPopupModule,\r\n PictureCropPopupModule,\r\n // RootMemberProfileEditModule,\r\n PutInNotePopupModule,\r\n PutInNoteCheckPopupModule,\r\n PutInNoteSuccessPopupModule,\r\n TextInputPopupModule,\r\n TeamNoteStatusPopupModule,\r\n TeamAnnouncePopupModule,\r\n EditCategoryPopup2Module,\r\n MemberSelectPopupModule,\r\n CreateCategoryPopup2Module,\r\n TeamNoteOpenLogPopupModule,\r\n CheckinTeamFilterPopupModule,\r\n PayInfoOverSaveLimitPopupModule,\r\n PayInfoOverTimeLimitPopupModule,\r\n NoteConfigPopupModule,\r\n SaveCountLimitPopupModule,\r\n PermissionSettingPopupModule,\r\n PrivateCasePopupModule,\r\n BlockGuestFunctionPopupModule,\r\n GuestTimeupPopupModule,\r\n SystemAnnouncePopupModule,\r\n\r\n RootRoutingModule,\r\n // AppRoutingModule,\r\n\r\n ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),\r\n FilterMeetMemberPopupModule,\r\n CaseDuplicateWarningPopupModule,\r\n TeamNoteDownloadLogPopupModule,\r\n TeamMemberOptionPopupModule,\r\n ConfirmPopupModule,\r\n NoteEvaluatePointPopupModule,\r\n PermissionConfigPopupModule,\r\n ContactSupportPopupModule,\r\n NotifyModule,\r\n ],\r\n declarations: [\r\n AppComponent,\r\n SafeUrlPipe,\r\n ScrollSmoothDirective,\r\n ],\r\n providers: [\r\n LZStringService,\r\n DeviceDetectorService,\r\n DeviceCheckerGuard,\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule { }\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Route, CanLoad, ActivatedRoute, UrlSegment, Params, CanActivateChild, UrlTree, NavigationCancel } from '@angular/router';\r\nimport { Observable, of, from, Subject, BehaviorSubject, Subscriber } from 'rxjs';\r\nimport { map, catchError, tap, concatMap, filter, take } from 'rxjs/operators';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { CookieService, CookieOptions } from 'ngx-cookie';\r\nimport { NotificationService } from 'projects/lwlib/src/notification/notification.service';\r\nimport { SignalR, SignalRConfiguration, SignalRConnection, ConnectionStatus, BroadcastEventListener, ISignalRConnection } from 'ng2-signalr';\r\nimport { environment } from '../environments/environment';\r\nimport { MemberIdentity } from 'projects/lwlib/src/member/member-identity.enum';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { LogPageRequest } from 'projects/lwlib/src/log-page/log-page-request';\r\nimport { DisconnectedPopupOpenerService } from 'projects/lwlib/src/disconnected-popup/disconnected-popup-opener.service';\r\nimport { LoginInvalidPopupOpenerService } from 'projects/lwlib/src/login-invalid-popup/login-invalid-popup-opener.service';\r\nimport { AppConfigService } from 'projects/desktop/src/app/app-config.service';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { SwUpdate } from '@angular/service-worker';\r\nimport { UrlQueryParser } from 'projects/lwlib/src/url-query-parser';\r\nimport { NetService } from 'projects/lwlib/src/net.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nexport enum LoginType {\r\n Phone = 0,\r\n Facebook = 1,\r\n}\r\nexport enum LoginStatus {\r\n Guest = 0,\r\n Logined = 1,\r\n InputDataError = 2,\r\n Conflict = 3,\r\n Conflict2 = 4, // 踢下線失敗\r\n PhoneLoginAndNoMobileVersionPermission = 5, // 手機登入,但沒有手機版權限,這是保持相容現在桌面版登入\r\n FacebookLogin = 6, // FB登入\r\n WaitReview = 7, // 已登入,還沒審查通過\r\n FixData = 8, // 補正資料\r\n AdminLogin = 9, // 管理員登入\r\n NewSite = 10, // 需要新版網站許可\r\n PhoneLoginAndHaveMobileVersionPermission = 11, // 手機登入,且有手機版權限\r\n GuestLogined = 12, // 訪客登入\r\n GuestOverTime = 13, // 訪客登入\r\n}\r\nexport class LoginResult {\r\n status: LoginStatus;\r\n token: string;\r\n}\r\nclass PhoneLoginData {\r\n phone: string;\r\n password: string;\r\n force_kick: boolean;\r\n}\r\n@Injectable({ providedIn: 'root' })\r\nexport class AppService {\r\n // static host: string = '5131135710.ddns.net';\r\n\r\n /** https://host:7999 */\r\n get BaseUrlApi(): string { return AppService.protocol + '//' + AppService.host + ':' + AppService.Port; }\r\n /** https://host */\r\n get BaseUrlApiNoPort(): string { return AppService.protocol + '//' + AppService.host; }\r\n /** https://host:4200 */\r\n // get baseUrlWeb(): string { return AppService.protocol + '//' + AppService.host + ':' + location.port; }\r\n get BaseUrlWeb(): string { return location.protocol + '//' + location.host; }\r\n /** http://host:7999 */\r\n get BaseUrlApiPrint(): string { return 'http://' + AppService.hostPrint + ''; }\r\n /** host:7999 */\r\n get HostApi(): string { return AppService.host + ':' + AppService.Port; }\r\n\r\n /** https://host:7999 */\r\n static get BaseUrlApiStatic(): string { return AppService.protocol + '//' + AppService.host + ':' + AppService.Port; }\r\n /** https://host:4200 */\r\n static get BaseUrlWebStatic(): string { return AppService.protocol + '//' + AppService.host + ':' + location.port; }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private cookieService: CookieService,\r\n private notificationService: NotificationService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private _signalR: SignalR,\r\n private disconnectedPopupOpenerService: DisconnectedPopupOpenerService,\r\n private loginInvalidPopupOpenerService: LoginInvalidPopupOpenerService,\r\n // public swUpdate: SwUpdate,\r\n private deviceDetectorService: DeviceDetectorService,\r\n private matDialog: MatDialog,\r\n ) {\r\n console.log('desktop app service constructor');\r\n }\r\n\r\n static get FacebookId(): string {\r\n if (location.hostname === 'localhost') {\r\n return '1160354147348056'; // 測試版\r\n }\r\n return '267882393544005'; // 線上版\r\n }\r\n\r\n // static facebookId: string = '1160354147348056';\r\n\r\n static get Port(): number { return AppService.protocolDict[location.protocol]; }\r\n get LoginStatus() { return this._loginStatus; }\r\n\r\n static protocol: string = location.protocol;\r\n // static host: string = '52.196.146.232'; // 線上\r\n // static host: string = '220.135.109.121'; // 本地\r\n // static host: string = '192.168.0.128'; // 本地\r\n // static host: string = '13.231.143.58'; // 本地\r\n // static host: string = '254710.ml'; // 測試S\r\n // static host: string = 'localhost'; // 本地\r\n // static host: string = '13.231.128.234'; // 測試S\r\n static host: string = 'legalworks.com.tw';\r\n // static hostPrint: string = '220.135.109.121';\r\n // static hostPrint: string = '192.168.0.128';\r\n // static hostPrint: string = '13.231.143.58';\r\n // static hostPrint: string = '52.196.146.232';\r\n static hostPrint: string = 'legalworks.com.tw';\r\n\r\n static protocolDict = {\r\n 'http:': 80,\r\n 'https:': 443,\r\n };\r\n static loginToken: string = '';\r\n\r\n _loginStatus: LoginStatus = LoginStatus.Guest;\r\n\r\n\r\n /** signalr連線 */\r\n private connection: SignalRConnection;\r\n onSignlarConnected: BehaviorSubject = new BehaviorSubject(false);\r\n isForceSignalrStop: boolean = false;\r\n /** 監聽集 */\r\n private signalrListener: { [key: string]: BroadcastEventListener } = {};\r\n signalrReconnecting: boolean = false;\r\n\r\n logoutPopupBlock: boolean = false;\r\n lastViewPage: LogPageId = LogPageId.Login;\r\n\r\n get IsLogin(): boolean {\r\n return [\r\n LoginStatus.Logined,\r\n LoginStatus.PhoneLoginAndNoMobileVersionPermission,\r\n LoginStatus.FacebookLogin,\r\n LoginStatus.WaitReview,\r\n LoginStatus.FixData,\r\n LoginStatus.AdminLogin,\r\n LoginStatus.NewSite,\r\n LoginStatus.PhoneLoginAndHaveMobileVersionPermission,\r\n LoginStatus.GuestLogined\r\n ].indexOf(this._loginStatus) > -1;\r\n }\r\n get IsGuest(): boolean {\r\n return [\r\n LoginStatus.GuestLogined\r\n ].indexOf(this._loginStatus) > -1;\r\n }\r\n\r\n\r\n onOpenPopupBlockGuestFunction: () => void;\r\n\r\n /** 建立即時同步設定檔 */\r\n static createSignalRConfig(): SignalRConfiguration {\r\n const c = new SignalRConfiguration();\r\n // c.jsonp = true;\r\n c.hubName = 'onlinehub';\r\n c.url = AppService.BaseUrlApiStatic;\r\n // c.qs = { token: AppService.loginToken };\r\n if (AppConfigService.enableSignalrLog) {\r\n c.logging = true;\r\n }\r\n // 開啟cors\r\n c.withCredentials = true;\r\n\r\n\r\n // >= v5.0.0\r\n c.executeEventsInZone = true; // optional, default is true\r\n c.executeErrorsInZone = false; // optional, default is false\r\n c.executeStatusChangeInZone = true; // optional, default is true\r\n return c;\r\n }\r\n\r\n\r\n // // 登入相關\r\n // checkToken(): Observable {\r\n // const token = this.cookieService.get('token');\r\n // if (token == null || token.length === 0) {\r\n // return of(false);\r\n // }\r\n\r\n // const headers: HttpHeaders = new HttpHeaders({\r\n // Authorization: token\r\n // });\r\n // return this.http.get(this.baseUrlApi + '/user/token', { headers: headers });\r\n // }\r\n\r\n /** 檢查是否登入中 */\r\n isLogin$(): Observable {\r\n // return this.loginStatus == LoginStatus.Logined;\r\n // return this.checkToken();\r\n return this.refreshLoginStatus()\r\n .pipe(\r\n map(status => {\r\n return this.IsLogin;\r\n })\r\n );\r\n }\r\n isGuest$(): Observable {\r\n return this.refreshLoginStatus()\r\n .pipe(\r\n map(status => {\r\n return this.IsGuest;\r\n })\r\n );\r\n }\r\n /** 檢查token的登入狀態 */\r\n checkLoginStatus(): Observable {\r\n const queryParams = this.parseQueryString(location.search);\r\n // console.log('token_status');\r\n if (queryParams.token) {\r\n // console.log('write temp token ' + queryParams.token);\r\n this.writeCookie('token', queryParams.token, 0);\r\n }\r\n return this.get('user/token_status?_=' + new Date().getTime());\r\n }\r\n /** 刷新登入狀態 */\r\n refreshLoginStatus(): Observable {\r\n return this.checkLoginStatus()\r\n .pipe(\r\n tap(status => {\r\n this._loginStatus = status;\r\n if (status == LoginStatus.GuestOverTime) {\r\n this.removeCookie('token');\r\n location.href = '/guest_timeup';\r\n }\r\n })\r\n );\r\n }\r\n /** 使用token2做為檢查 */\r\n checkLoginStatus2(): Observable {\r\n const token2 = this.getCookie('token2');\r\n // console.log('check token2:', token2);\r\n if (!token2) {\r\n return of(LoginStatus.Guest);\r\n }\r\n\r\n return this.get('user/token_status?_=' + new Date().getTime(), null, token2);\r\n }\r\n\r\n parseQueryString(locationSearchString: string): any {\r\n const querySubString = locationSearchString.substring(1);\r\n if (!querySubString) {\r\n return {};\r\n }\r\n\r\n const result: any = {};\r\n querySubString.split('&').forEach(v => {\r\n const v2 = v.split('=');\r\n result[v2[0]] = v2[1];\r\n });\r\n\r\n return result;\r\n }\r\n\r\n\r\n\r\n phoneLogin(phoneNumber: string, password: string): Observable {\r\n const data = new PhoneLoginData();\r\n data.phone = phoneNumber;\r\n data.password = password;\r\n\r\n // return this.loginWithData(data);\r\n return this.post('user/phone_login', data)\r\n .pipe(tap(result => {\r\n this._loginStatus = result.status;\r\n }));\r\n }\r\n phoneLoginAndKick(phoneNumber: string, password: string): Observable {\r\n const data = new PhoneLoginData();\r\n data.phone = phoneNumber;\r\n data.password = password;\r\n data.force_kick = true;\r\n\r\n // return this.loginWithData(data);\r\n return this.post('user/phone_login', data)\r\n .pipe(tap(result => {\r\n this._loginStatus = result.status;\r\n }));\r\n }\r\n phoneLoginFbAccount(phoneNumber: string, password: string): Observable {\r\n const data = new PhoneLoginData();\r\n data.phone = phoneNumber;\r\n data.password = password;\r\n data.force_kick = true;\r\n\r\n return this.post('user/phone_login_fb_account', data)\r\n .pipe(tap(result => {\r\n this._loginStatus = result.status;\r\n }));\r\n }\r\n fbLogin(fbToken: string): Observable {\r\n const url = 'user/fb_login';\r\n return this.post(url, {\r\n token: fbToken\r\n })\r\n .pipe(tap(result => {\r\n this._loginStatus = result.status;\r\n }));\r\n }\r\n fbLoginAndKick(fbToken: string): Observable {\r\n const url = 'user/fb_login';\r\n return this.post(url, {\r\n token: fbToken,\r\n force_kick: 1\r\n })\r\n .pipe(tap(result => {\r\n this._loginStatus = result.status;\r\n }));\r\n }\r\n logout(): Observable {\r\n const token = this.cookieService.get('token');\r\n if (token == null) {\r\n return of(true);\r\n }\r\n // const headers: HttpHeaders = new HttpHeaders({\r\n // 'Authorization': token\r\n // });\r\n return this.get('user/logout')\r\n .pipe(map(result => {\r\n this._loginStatus = LoginStatus.Guest;\r\n this.cookieService.remove('token');\r\n return result;\r\n }));\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /** 寫入cookie */\r\n writeCookie(key: string, value: string, days: number = 30): void {\r\n const expireDays = days;\r\n const expireDate = new Date();\r\n expireDate.setDate(expireDate.getDate() + expireDays);\r\n\r\n const cookieOption: CookieOptions = {};\r\n if (days > 0) {\r\n cookieOption.expires = expireDate;\r\n }\r\n cookieOption.path = '/';\r\n // expires: expireDate,\r\n // domain: location.hostname,\r\n\r\n // console.log('write cookie ', key, value, days, expireDate);\r\n this.cookieService.put(key, value, cookieOption);\r\n\r\n // let cookieString = key + '=' + value;\r\n // cookieString += ';path=/ ';\r\n // if (days > 0) {\r\n // cookieString += ';expires=' + expireDate.toUTCString() + ' ';\r\n // }\r\n // cookieString += ';domain=' + location.hostname;\r\n // console.log(cookieString);\r\n // console.log(document.cookie);\r\n }\r\n /** 取得cookie */\r\n getCookie(key: string): string {\r\n return this.cookieService.get(key);\r\n }\r\n /** 移除cookie */\r\n removeCookie(key: string): void {\r\n // console.log('delete cookie ', key);\r\n\r\n this.cookieService.remove(key);\r\n }\r\n\r\n\r\n /** 紀錄 */\r\n log(id: LogPageId, query: string, id1: string): void {\r\n this.lastViewPage = id;\r\n const postData: LogPageRequest = {\r\n id: id,\r\n query: query,\r\n id1: id1,\r\n };\r\n this.post('user/log', postData).subscribe();\r\n }\r\n\r\n\r\n /**\r\n * @param relative_url relative_url => http://xxx/{relative_url}\r\n */\r\n get(relative_url: string, cors?: boolean, customToken?: string, type?: string): Observable {\r\n if(relative_url==null || relative_url=='undefined'){\r\n console.error('relative_url is undefined');\r\n }\r\n const url = this.BaseUrlApi + '/' + relative_url;\r\n // console.log(url);\r\n\r\n const headerData: any = {};\r\n const token = this.cookieService.get('token');\r\n\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n if (customToken) {\r\n headerData.Authorization = customToken;\r\n }\r\n\r\n let typeName: string = 'application/json, text/plain, */*';\r\n if (type) {\r\n typeName = type;\r\n }\r\n // console.log('get ', cors, token);\r\n\r\n return this.http.get(url, {\r\n headers: new HttpHeaders(headerData),\r\n withCredentials: (cors ? true : false),\r\n // withCredentials : true,\r\n }).pipe(catchError((error) => {\r\n console.error(error);\r\n\r\n this.notificationService.addError(error.message);\r\n return of(error);\r\n }));\r\n }\r\n /**\r\n * @param relative_url relative_url => http://xxx/{relative_url}\r\n */\r\n getRaw(relative_url: string, param?: { [param: string]: string | string[] }): Observable {\r\n if(relative_url==null || relative_url=='undefined'){\r\n console.error('2 relative_url is undefined');\r\n }\r\n const url = this.BaseUrlApi + '/' + relative_url;\r\n const headerData: any = {};\r\n const token = this.cookieService.get('token');\r\n\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n // if (customToken) {\r\n // headerData['Authorization'] = customToken;\r\n // }\r\n\r\n // let typeName: string = 'application/json, text/plain, */*';\r\n // if (type) {\r\n // typeName = type;\r\n // }\r\n // console.log('get ', cors, token);\r\n return this.http.get(url, {\r\n headers: new HttpHeaders(headerData),\r\n withCredentials: false,\r\n // withCredentials : true,\r\n params: param\r\n });\r\n }\r\n\r\n /**\r\n * @param relative_url relative_url => http://xxx/{relative_url}\r\n */\r\n getText(relative_url: string): Observable {\r\n if(relative_url==null || relative_url=='undefined'){\r\n console.error('3 relative_url is undefined');\r\n }\r\n\r\n const url = this.BaseUrlApi + '/' + relative_url;\r\n const headerData: any = {};\r\n const token = this.cookieService.get('token');\r\n\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n\r\n return this.http.get(url, {\r\n headers: new HttpHeaders(headerData),\r\n responseType: 'text',\r\n // withCredentials: true,\r\n }).pipe(catchError((error) => {\r\n console.error(error);\r\n\r\n this.notificationService.addError(error.message);\r\n return of(error);\r\n }));\r\n }\r\n\r\n /**\r\n * @param relative_url relative_url => http://xxx/{relative_url}\r\n */\r\n getBlob(relative_url: string): Observable {\r\n if(relative_url==null || relative_url=='undefined'){\r\n console.error('4 relative_url is undefined');\r\n }\r\n\r\n const url = this.BaseUrlApi + '/' + relative_url;\r\n const headerData: any = {};\r\n const token = this.cookieService.get('token');\r\n\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n\r\n return this.http.get(url, {\r\n headers: new HttpHeaders(headerData),\r\n responseType: 'blob',\r\n // withCredentials: true,\r\n }).pipe(catchError((error) => {\r\n console.error(error);\r\n\r\n this.notificationService.addError(error.message);\r\n return of(error);\r\n }));\r\n }\r\n\r\n /**\r\n * @param relative_url relative_url => http://xxx/{relative_url}\r\n */\r\n post(relative_url: string, data: any, cors?: boolean): Observable {\r\n const url = this.BaseUrlApi + '/' + relative_url;\r\n const headerData: any = {\r\n 'Content-Type': 'application/json',\r\n };\r\n\r\n const token = this.cookieService.get('token');\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n // return of(1)\r\n // .pipe(\r\n // tap(() => {\r\n // console.log('post,', headerData, cors);\r\n // }),\r\n // concatMap(() => this.http.post(url, data, {\r\n // headers: new HttpHeaders(headerData),\r\n // withCredentials: (cors ? true : false),\r\n // })),\r\n // catchError((error) => {\r\n // console.error(error);\r\n // this.notificationService.addError(error.message);\r\n // throw of(error);\r\n // // return of(error);\r\n // })\r\n // )\r\n return this.http.post(url, data, {\r\n headers: new HttpHeaders(headerData),\r\n withCredentials: (cors ? true : false),\r\n }).pipe(\r\n // tap(() => {\r\n // console.log('post,', headerData, cors);\r\n // }),\r\n catchError((error) => {\r\n console.error(error);\r\n this.notificationService.addError(error.message);\r\n throw of(error);\r\n // return of(error);\r\n })\r\n );\r\n }\r\n /**\r\n * @param relative_url relative_url => http://xxx/{relative_url}\r\n */\r\n postRaw(relative_url: string, data: any): Observable {\r\n const url = this.BaseUrlApi + '/' + relative_url;\r\n const headerData: any = {\r\n 'Content-Type': 'application/json',\r\n };\r\n\r\n const token = this.cookieService.get('token');\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n return this.http.post(url, data, {\r\n headers: new HttpHeaders(headerData),\r\n withCredentials: false,\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /** SSE不支援Header設定,放棄 */\r\n // getSSE(relative_url: string): Observable {\r\n // let url = this.host + '/' + relative_url + '?key='\r\n // + this.cookieService.get('token');\r\n\r\n // let complete = new Subject();\r\n // return new Observable((subscriber) => {\r\n // const evSource = new EventSource(url);\r\n // evSource.onmessage = (ev) => {\r\n // console.log(evSource.readyState);\r\n\r\n // if (evSource.readyState == evSource.OPEN) {\r\n // this.zone.run(() => subscriber.next(JSON.parse(ev.data)));\r\n // }\r\n // };\r\n\r\n // evSource.onerror = (error: Event) => {\r\n // setTimeout(() => {\r\n // console.log(error\r\n // , error.eventPhase\r\n // , evSource.readyState\r\n // , evSource.CLOSED\r\n // , evSource.OPEN\r\n // , evSource.CONNECTING);\r\n // if (error.eventPhase != 0 && evSource.readyState == evSource.OPEN) {\r\n // this.zone.run(() => subscriber.error(error));\r\n // }\r\n // }, 1);\r\n // };\r\n\r\n\r\n // return () => {\r\n\r\n // };\r\n // })\r\n // // const rob = (Observable.create((ob: Subscriber) => {\r\n // // console.log(ob);\r\n\r\n // // const evSource = new EventSource(url);\r\n\r\n // // evSource.onmessage = (ev) => {\r\n // // console.log(evSource.readyState);\r\n\r\n // // if (evSource.readyState == evSource.OPEN) {\r\n // // this.zone.run(() => ob.next(JSON.parse(ev.data)));\r\n // // }\r\n // // };\r\n\r\n // // evSource.onerror = (error: Event) => {\r\n // // setTimeout(() => {\r\n // // console.log(error\r\n // // , error.eventPhase\r\n // // , evSource.readyState\r\n // // , evSource.CLOSED\r\n // // , evSource.OPEN\r\n // // , evSource.CONNECTING);\r\n // // if (error.eventPhase != 0 && evSource.readyState == evSource.OPEN) {\r\n // // this.zone.run(() => ob.error(error));\r\n // // }\r\n // // }, 1);\r\n // // };\r\n\r\n\r\n\r\n\r\n // // return () => {\r\n // // console.log('evs close');\r\n // // evSource.close();\r\n // // complete = true;\r\n // // this.zone.run(() => ob.complete());\r\n // // source.complete();\r\n // // }\r\n // // }) as Observable);\r\n\r\n // // return rob;\r\n // }\r\n\r\n /** 本地紀錄 */\r\n setLocal(name: string, data: any): void {\r\n localStorage.setItem(name, data);\r\n }\r\n getLocal(name: string): string {\r\n const value: string = localStorage.getItem(name);\r\n return value;\r\n }\r\n removeLocal(name: string): void {\r\n localStorage.removeItem(name);\r\n }\r\n\r\n\r\n\r\n /** 即時同步連線 */\r\n connectHub(): Observable {\r\n this.notificationService.addNormal('連線即時同步...');\r\n this.connection = this._signalR.createConnection({\r\n url: AppService.BaseUrlApiStatic,\r\n qs: { token: AppService.loginToken }\r\n });\r\n\r\n /** 0=connecting, 1=connected, 2=reconnecting, 4=disconnected */\r\n this.connection.status.subscribe((s: ConnectionStatus) => {\r\n this.notificationService.addNormal('連線狀態更變: ' + s.name + ', ' + s.value);\r\n if (s.value === 1) {\r\n this.onSignlarConnected.next(true);\r\n }\r\n\r\n if (s.value === 1 && this.signalrReconnecting) {\r\n this.onSignlarConnected.next(true);\r\n this.signalrReconnecting = false;\r\n this.notificationService.addWarning('已重新連線');\r\n this.checkLoginStatus().subscribe(r => {\r\n if (r === LoginStatus.Guest) {\r\n this.loginInvalidPopupOpenerService.openPopup();\r\n }\r\n });\r\n } else if (s.value === 2) {\r\n this.onSignlarConnected.next(false);\r\n this.notificationService.addWarning('嘗試重新連線');\r\n this.signalrReconnecting = true;\r\n } else if (s.value === 4) {\r\n this.onSignlarConnected.next(false);\r\n this.notificationService.addWarning('連線中斷');\r\n // this.disconnectedPopupOpenerService.openPopup();\r\n }\r\n // console.log('連線狀態更變: ', s);\r\n });\r\n this.connection.errors.subscribe(s => {\r\n this.notificationService.addError('連線錯誤:' + s.message);\r\n });\r\n return from(\r\n this.connection.start()\r\n .catch(err => {\r\n throw err;\r\n })\r\n );\r\n // this.connection.start()\r\n // .catch(err => {\r\n // this.notificationService.addError('連線錯誤:' + err.message);\r\n // setTimeout(() => {\r\n // this.connectHub().subscribe();\r\n // }, 5000);\r\n // });\r\n\r\n // return of('connection_builded');\r\n }\r\n getConnectHub(): Observable {\r\n if (this.connection == null) {\r\n console.log('[signalr]build connection');\r\n const token = this.cookieService.get('token');\r\n this.connection = this._signalR.createConnection({\r\n url: AppService.BaseUrlApiStatic,\r\n qs: { token: token }\r\n });\r\n }\r\n\r\n return of(this.connection);\r\n }\r\n connectHub2(): Observable {\r\n return this.getConnectHub()\r\n .pipe(\r\n tap(c => {\r\n console.log('[signalr]connecting');\r\n }),\r\n concatMap(c => c.start()),\r\n tap(c => {\r\n console.log('[signalr]connect end', c);\r\n\r\n })\r\n // map(c => {\r\n // return c as ISignalRConnection;\r\n // })\r\n )\r\n ;\r\n }\r\n\r\n\r\n\r\n\r\n /** 即時同步 - 增加監聽 */\r\n addGetSignlaRSystemListener(name: string): BroadcastEventListener {\r\n if (this.signalrListener[name]) {\r\n return this.signalrListener[name];\r\n // throw new Error('listener can not overwrite. unregister first.' + name);\r\n }\r\n if (this.connection) {\r\n this.signalrListener[name] = this.connection.listenFor(name);\r\n return this.signalrListener[name];\r\n }\r\n }\r\n /** 即時同步 - 移除監聽 */\r\n removeSignalrListener(name: string): void {\r\n if (this.signalrListener[name]) {\r\n this.connection.stopListening(this.signalrListener[name]);\r\n this.signalrListener[name] = null;\r\n }\r\n }\r\n /** 即時同步 - 發送給S */\r\n sendToServer(name, data) {\r\n if (data) {\r\n return this.connection.invoke(name, data);\r\n } else {\r\n return this.connection.invoke(name);\r\n }\r\n }\r\n getConnectionId(): string {\r\n return this.connection ? this.connection.id : '';\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /** 更新分頁icon */\r\n updateFavicon(icon: string): void {\r\n document.getElementById('app-favicon').setAttribute('href', icon);\r\n }\r\n /** 更新分頁標題 */\r\n updateTitle(name: string): void {\r\n if (!name) {\r\n document.title = 'Legal Works';\r\n } else {\r\n document.title = name;\r\n }\r\n }\r\n\r\n\r\n isDesktop(): boolean {\r\n return this.deviceDetectorService.isDesktop()\r\n || this.activatedRoute.snapshot.queryParams.force_desktop;\r\n }\r\n // checkAppUpdate(): void {\r\n // console.log('check update');\r\n // this.swUpdate.available.subscribe(result => {\r\n // console.log('update check result:', result);\r\n // });\r\n // // Observable.create((subsc: Subscriber) => {\r\n // // });\r\n // }\r\n\r\n /** 經由根連結,在前往指定位置,觸發重新讀取相同連結 */\r\n redirTo(url: string, onBeforeGoUrl?: () => void): void {\r\n this.router.navigate(['/redir/empty', { isredir: true }], {\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true,\r\n skipLocationChange: true\r\n })\r\n .then(() => {\r\n if (onBeforeGoUrl) {\r\n onBeforeGoUrl();\r\n }\r\n this.router.navigate([url], {\r\n queryParamsHandling: 'merge'\r\n })\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n /** 開啟訪客功能阻擋彈窗 */\r\n openPopupBlockGuestFunction(): void {\r\n // if (this.onOpenPopupBlockGuestFunction != null) {\r\n // }\r\n this.onOpenPopupBlockGuestFunction();\r\n }\r\n\r\n}\r\n\r\n/** 登入檢查 */\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanLoad, CanActivateChild {\r\n static checkCount: number = 0;\r\n navigationCancel$: Observable;\r\n\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private service: AppService,\r\n private deviceDetectorService: DeviceDetectorService,\r\n private net: NetService,\r\n ) {\r\n console.log('AuthGuard constructor');\r\n\r\n this.navigationCancel$ = this.router.events\r\n .pipe(filter((e): e is NavigationCancel => e instanceof NavigationCancel));\r\n }\r\n\r\n // checkLogin(route: Route): boolean | Observable | Promise {\r\n // console.log('AuthGuard check login');\r\n\r\n // return this.net.checkLoginStatus()\r\n // .pipe(\r\n // concatMap((status: LoginStatus) => {\r\n // AuthGuard.checkCount++;\r\n // if (AuthGuard.checkCount > 5) {\r\n // debugger;\r\n // throw new Error(\"dead loop checked.\");\r\n // }\r\n // console.log('登入狀態:' + LoginStatus[status]);\r\n\r\n // if (status === LoginStatus.Logined\r\n // || status === LoginStatus.FacebookLogin\r\n // || status === LoginStatus.PhoneLoginAndNoMobileVersionPermission\r\n // || status === LoginStatus.PhoneLoginAndHaveMobileVersionPermission\r\n // || status === LoginStatus.GuestLogined) {\r\n // console.log('登入中');\r\n // sessionStorage.removeItem('login_redir');\r\n // return of(true);\r\n // }\r\n\r\n // else if (status === LoginStatus.WaitReview) {\r\n // console.log('等待審核');\r\n // sessionStorage.removeItem('login_redir');\r\n // this.router.navigate(['/wait_review'], { queryParams: {} });\r\n // return of(false);\r\n // }\r\n\r\n // else if (status === LoginStatus.FixData) {\r\n // console.log('修正->等待審核');\r\n // sessionStorage.removeItem('login_redir');\r\n // this.router.navigate(['/wait_review'], { queryParams: {} });\r\n // return of(false);\r\n // }\r\n\r\n // // 未登入,需保持session的登入轉跳,在登入之後才移除\r\n // else {\r\n // console.log('未登入');\r\n // console.log(location.href);\r\n // console.log(this.activatedRoute.snapshot);\r\n\r\n // this.navigationCancel$.pipe(take(1)).subscribe({\r\n // next: () => {\r\n // console.log('navigationCancel redirect -> login');\r\n // this.router.navigate(['/login'], {});\r\n // },\r\n // complete: () => {\r\n // console.log('navigationCancel redirect complete');\r\n // }\r\n // });\r\n\r\n // return of(false);\r\n // }\r\n // }),\r\n // take(1),\r\n // catchError((err) => {\r\n // console.error(err);\r\n // throw err;\r\n\r\n // // 出現錯誤時,要對應轉跳到一個可顯示的頁面(登入、錯誤提示 ...)\r\n // // 否則畫面會空白\r\n // // this.router.navigate(['/login']);\r\n // // return of(false);\r\n // })\r\n // );\r\n // }\r\n\r\n canLoad(route: Route, segments: UrlSegment[]): boolean | Observable | Promise {\r\n console.log('auth canLoad trace');\r\n AuthGuard.checkCount++;\r\n if (AuthGuard.checkCount > 3) {\r\n throw new Error(\"dead loop checked.\");\r\n }\r\n return this.net.checkLoginStatus()\r\n .pipe(\r\n map((status: LoginStatus) => {\r\n if (status === LoginStatus.Logined\r\n || status === LoginStatus.FacebookLogin\r\n || status === LoginStatus.PhoneLoginAndNoMobileVersionPermission\r\n || status === LoginStatus.PhoneLoginAndHaveMobileVersionPermission\r\n || status === LoginStatus.GuestLogined) {\r\n console.log('登入中');\r\n sessionStorage.removeItem('login_redir');\r\n return true;\r\n } else if (status === LoginStatus.WaitReview) {\r\n console.log('等待審核');\r\n sessionStorage.removeItem('login_redir');\r\n this.router.navigate(['/wait_review'], { queryParams: {} });\r\n return false;\r\n } else if (status === LoginStatus.FixData) {\r\n console.log('修正->等待審核');\r\n sessionStorage.removeItem('login_redir');\r\n this.router.navigate(['/wait_review'], { queryParams: {} });\r\n return false;\r\n } else {\r\n console.log('未登入 canload');\r\n console.log(location.href);\r\n console.log(this.activatedRoute.snapshot);\r\n // 設定轉跳目標\r\n sessionStorage.setItem('login_redir', location.href);\r\n\r\n this.navigationCancel$.pipe(take(1)).subscribe({\r\n next: () => {\r\n console.log('navigationCancel redirect -> login');\r\n location.pathname = '/login';\r\n // this.router.navigate(['/login'], { relativeTo: this.activatedRoute });\r\n },\r\n complete: () => {\r\n console.log('navigationCancel redirect complete');\r\n }\r\n });\r\n return false;\r\n }\r\n }),\r\n tap(() => {\r\n AuthGuard.checkCount = 0;\r\n })\r\n );\r\n }\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\r\n console.log('auth canActivate trace');\r\n AuthGuard.checkCount++;\r\n if (AuthGuard.checkCount > 3) {\r\n throw new Error(\"dead loop checked.\");\r\n }\r\n return this.net.checkLoginStatus()\r\n .pipe(\r\n map((status: LoginStatus) => {\r\n if (status === LoginStatus.Logined\r\n || status === LoginStatus.FacebookLogin\r\n || status === LoginStatus.PhoneLoginAndNoMobileVersionPermission\r\n || status === LoginStatus.PhoneLoginAndHaveMobileVersionPermission\r\n || status === LoginStatus.GuestLogined) {\r\n console.log('登入中');\r\n sessionStorage.removeItem('login_redir');\r\n return true;\r\n } else if (status === LoginStatus.WaitReview) {\r\n console.log('等待審核');\r\n sessionStorage.removeItem('login_redir');\r\n this.router.navigate(['/wait_review'], { queryParams: {} });\r\n return false;\r\n } else if (status === LoginStatus.FixData) {\r\n console.log('修正->等待審核');\r\n sessionStorage.removeItem('login_redir');\r\n this.router.navigate(['/wait_review'], { queryParams: {} });\r\n return false;\r\n } else {\r\n console.log('未登入 canactive');\r\n console.log(location.href);\r\n console.log(this.activatedRoute.snapshot.url);\r\n // 設定轉跳目標\r\n sessionStorage.setItem('login_redir', location.href);\r\n\r\n this.navigationCancel$.pipe(take(1)).subscribe({\r\n next: () => {\r\n console.log('navigationCancel redirect -> login');\r\n console.log(route);\r\n console.log(state);\r\n // this.router.navigate(['/login'], { relativeTo: this.activatedRoute });\r\n },\r\n complete: () => {\r\n console.log('navigationCancel redirect complete');\r\n }\r\n });\r\n // return false;\r\n\r\n\r\n return this.router.parseUrl('/login');\r\n }\r\n }),\r\n tap(() => {\r\n AuthGuard.checkCount = 0;\r\n })\r\n );\r\n }\r\n canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\r\n console.log('auth canActivate trace');\r\n AuthGuard.checkCount++;\r\n if (AuthGuard.checkCount > 3) {\r\n throw new Error(\"dead loop checked.\");\r\n }\r\n return this.net.checkLoginStatus()\r\n .pipe(\r\n map((status: LoginStatus) => {\r\n if (status === LoginStatus.Logined\r\n || status === LoginStatus.FacebookLogin\r\n || status === LoginStatus.PhoneLoginAndNoMobileVersionPermission\r\n || status === LoginStatus.PhoneLoginAndHaveMobileVersionPermission\r\n || status === LoginStatus.GuestLogined) {\r\n console.log('登入中');\r\n return true;\r\n } else if (status === LoginStatus.WaitReview) {\r\n console.log('等待審核');\r\n this.router.navigate(['/wait_review'], { queryParams: {} });\r\n return false;\r\n } else if (status === LoginStatus.FixData) {\r\n console.log('修正->等待審核');\r\n this.router.navigate(['/wait_review'], { queryParams: {} });\r\n return false;\r\n } else {\r\n console.log('未登入');\r\n this.navigationCancel$.pipe(take(1)).subscribe({\r\n next: () => {\r\n console.log('navigationCancel redirect -> login');\r\n console.log(childRoute);\r\n console.log(state);\r\n // this.router.navigate(['/login'], { relativeTo: this.activatedRoute });\r\n },\r\n complete: () => {\r\n console.log('navigationCancel redirect complete');\r\n }\r\n });\r\n // return false;\r\n\r\n\r\n return this.router.parseUrl('/login');\r\n }\r\n }),\r\n tap(() => {\r\n AuthGuard.checkCount = 0;\r\n })\r\n );\r\n }\r\n}\r\n/** 不須登入,可直接通過的頁面用 */\r\n@Injectable()\r\nexport class SessionRedirChecker implements CanActivate, CanActivateChild {\r\n canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\r\n // 這種不用登入的頁面直接移除轉跳設定\r\n console.log('session清除登入轉跳');\r\n sessionStorage.removeItem('login_redir');\r\n return true;\r\n }\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\r\n // 這種不用登入的頁面直接移除轉跳設定\r\n console.log('session清除登入轉跳');\r\n sessionStorage.removeItem('login_redir');\r\n return true;\r\n }\r\n}\r\n\r\n/** 等待審查檢查 */\r\n@Injectable()\r\nexport class WaitReviewActiveChecker implements CanActivate {\r\n\r\n constructor(\r\n private router: Router,\r\n private service: AppService,\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n return this.service.checkLoginStatus()\r\n .pipe(\r\n map((status: LoginStatus) => {\r\n console.log('檢查是否可進入等待審查:' + LoginStatus[status], route.params);\r\n if (status === LoginStatus.WaitReview\r\n || status === LoginStatus.FixData) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }),\r\n tap(result => {\r\n // console.log(result, route, state);\r\n if (!result) {\r\n this.router.navigate(['/']);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n\r\n/** 補正檢查 */\r\n@Injectable()\r\nexport class FixDataActiveChecker implements CanActivate {\r\n\r\n constructor(\r\n private router: Router,\r\n private service: AppService,\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n return this.service.checkLoginStatus()\r\n .pipe(\r\n map((status: LoginStatus) => {\r\n if (status === LoginStatus.FixData) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }),\r\n tap(result => {\r\n // console.log(result, route, state);\r\n if (!result) {\r\n this.router.navigate(['/']);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n\r\n/** 管理員檢查 */\r\n@Injectable()\r\nexport class AdminAuthGuard implements CanActivate, CanLoad {\r\n\r\n constructor(\r\n private router: Router,\r\n private service: AppService,\r\n ) { }\r\n canLoad(route: Route, segments: UrlSegment[]): boolean | UrlTree | Observable | Promise {\r\n return this.service.checkLoginStatus2()\r\n .pipe(\r\n map((status: LoginStatus) => {\r\n if (status === LoginStatus.AdminLogin) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }),\r\n tap(result => {\r\n // console.log(result, route, state);\r\n if (!result) {\r\n this.router.navigate(['/']);\r\n }\r\n })\r\n );\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n return this.service.checkLoginStatus2()\r\n .pipe(\r\n map((status: LoginStatus) => {\r\n if (status === LoginStatus.AdminLogin) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }),\r\n tap(result => {\r\n // console.log(result, route, state);\r\n if (!result) {\r\n this.router.navigate(['/']);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n\r\n/** 列印檢查 */\r\n@Injectable()\r\nexport class PrintGuard implements CanLoad, CanActivate {\r\n\r\n constructor(\r\n private router: Router,\r\n private service: AppService,\r\n ) { }\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\r\n // throw new Error('Method not implemented.');\r\n console.log(state);\r\n return of(true);\r\n // return this.service.get(segments[1].path + '/exist_note?note_id=' + segments[2].path);\r\n }\r\n canLoad(route: Route, segments: UrlSegment[]): boolean | Observable | Promise {\r\n console.log(route, segments);\r\n return this.service.get(segments[1].path + '/exist_note?note_id=' + segments[2].path);\r\n }\r\n}\r\n\r\n/** 團隊系統登入檢查 */\r\n@Injectable()\r\nexport class TeamAuthGuard implements CanActivate, CanActivateChild {\r\n constructor(\r\n private router: Router,\r\n private service: AppService,\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n // console.log('team auth guard');\r\n console.log(`TeamAuthGuard:`, route);\r\n // console.log(state);\r\n // route.\r\n const team_id = route.params.team_id;\r\n return this.service.getRaw('teamapi/enter_team_check?team_id=' + team_id)\r\n .pipe(\r\n catchError((error) => {\r\n this.router.navigate(['/'],\r\n {\r\n queryParams: { p: 'my_team' },\r\n queryParamsHandling: 'merge'\r\n });\r\n return of(error);\r\n }),\r\n tap(result => {\r\n console.log('enter team check result:' + result);\r\n\r\n if (!result) {\r\n this.router.navigate(['/'],\r\n {\r\n queryParams: { p: 'my_team' },\r\n queryParamsHandling: 'merge'\r\n });\r\n }\r\n }),\r\n );\r\n }\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n return this.canActivate(route, state);\r\n }\r\n}\r\n\r\n/** 上課用團隊登入檢查 */\r\n@Injectable()\r\nexport class TeamLessonAuthGuard implements CanActivate, CanActivateChild {\r\n constructor(\r\n private router: Router,\r\n private service: AppService,\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n // console.log('team auth guard');\r\n console.log(`TeamLessonAuthGuard:`, route);\r\n // console.log(state);\r\n // route.\r\n const team_id = route.params.team_id;\r\n return this.service.getRaw('teamapi/enter_team_lesson_check?team_id=' + team_id)\r\n .pipe(\r\n catchError((error) => {\r\n this.router.navigate(['/'],\r\n {\r\n queryParams: { p: 'my_team' },\r\n queryParamsHandling: 'merge'\r\n });\r\n return of(error);\r\n }),\r\n tap(result => {\r\n console.log('enter team check result:' + result);\r\n\r\n if (!result) {\r\n this.router.navigate(['/'],\r\n {\r\n queryParams: { p: 'my_team' },\r\n queryParamsHandling: 'merge'\r\n });\r\n }\r\n }),\r\n );\r\n }\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n return this.canActivate(route, state);\r\n }\r\n}\r\n\r\n// /** 團隊系統登入檢查 */\r\n// @Injectable()\r\n// export class TeamChildPageActivateChecker implements CanActivate, CanLoad {\r\n// constructor(\r\n// private router: Router,\r\n// private service: AppService,\r\n// private teamService: RootTeamService,\r\n// ) { }\r\n// canLoad(route: Route, segments: UrlSegment[]): boolean | Observable | Promise {\r\n// return this.teamService.isCurrentTeamMemberInited();\r\n// }\r\n\r\n// canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n// console.log(this.teamService.currentTeamId);\r\n// return of(!!this.teamService.currentTeamMember);\r\n// }\r\n// }\r\n\r\n/** 團隊系統登入檢查 */\r\n// @Injectable()\r\n// export class TeamAddMemberPageGuard implements CanActivate, CanLoad {\r\n// constructor(\r\n// private router: Router,\r\n// private service: AppService,\r\n// private teamService: RootTeamService,\r\n// ) { }\r\n// canLoad(route: Route, segments: UrlSegment[]): boolean | Observable | Promise {\r\n// console.log(this.teamService.currentTeamMember);\r\n\r\n// return this.teamService.isCurrentTeamMemberInited();\r\n// }\r\n\r\n// canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable | Promise {\r\n// console.log(this.teamService.currentTeamId);\r\n// return of(!!this.teamService.currentTeamMember);\r\n// }\r\n// }\r\n","import { NgModule } from '@angular/core';\r\nimport { NoPreloading, RouterModule, Routes } from '@angular/router';\r\nimport { AppModulePreloadStrategyGuard } from 'projects/lwlib/src/guard/app-module-preload-strategy.guard';\r\nimport { DeviceCheckIsDesktopGuard } from 'projects/lwlib/src/guard/device-check-is-desktop.guard';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../environments/environment';\r\nimport { SessionRedirChecker } from './app.service';\r\n\r\n/**\r\n * Angular的canLoad整個系統中只會觸發一次\r\n * 之後就不會再觸發,只會讀最後觸發的記錄\r\n * 要判斷使用者是否有權限進入頁面\r\n * 要用canActivate\r\n * 雖然會依照路徑事先讀取module,但這沒辦法避免\r\n */\r\nconst routes: Routes = [\r\n /** 裝置檢查 */\r\n {\r\n path: '',\r\n data: { rl1: 'root-routing' },\r\n canLoad: [DeviceCheckIsDesktopGuard],\r\n loadChildren: () => import('./app-routing.module').then(m => m.AppRoutingModule)\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, {\r\n relativeLinkResolution: 'legacy'\r\n }),\r\n ],\r\n declarations: [],\r\n exports: [RouterModule],\r\n providers: [DeviceCheckIsDesktopGuard]\r\n})\r\nexport class RootRoutingModule { }\r\n","export enum JobId {\r\n CertifiedLawyer = 0, // 執業律師\r\n TraineeLawer = 1, // 實習律師\r\n LawCollegeStudent = 2, // 法律系大學生\r\n LawMasterStudent = 3, // 法律系碩士生\r\n LawPhdStudent = 4, // 法律系博士生\r\n OtherDeptStudent = 5, // 其他科系學生\r\n BankingLaw = 6, // 金融業法務員\r\n InsuranceLaw = 7, // 保險業法務員\r\n GeneralLaw = 8, // 一般法務人員\r\n JudicialCivilServant = 9, // 司法公務人員\r\n AdministrationCivilServant = 10, // 行政公務人員\r\n OtherJob = 11, // 其他職業\r\n PrepareNationExam = 12, // 法律系畢業,準備國考者\r\n PrepareNationExamNotLaw = 13, // 非法律系畢業,準備國考者\r\n LawProfessor = 14, // 法律系教授、講師\r\n NotLawProfessor = 15, // 非法律系教授、講師\r\n}\r\n","export enum RegisterType {\r\n Phone = 0,\r\n Facebook = 1,\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { KeyCheckResult } from './key-check-result';\r\nimport { RegisterType } from './register-type.enum';\r\nimport { FixDataId } from './fix-data-id.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RootApplyMemberService {\r\n\r\n registerType: RegisterType = RegisterType.Phone;\r\n\r\n constructor(\r\n private service: AppService,\r\n ) { }\r\n /** 檢查律師證號 */\r\n requestLawyerCertificateCheck(cert1: number, cert2: number): Observable {\r\n const postData = {\r\n cert1: cert1,\r\n cert2: cert2\r\n };\r\n return this.service.post('user/verify_lawyer_certificate', postData);\r\n }\r\n /** 請求手機驗證碼 */\r\n requestPhoneVerifyCodeObserver(phone: string): Observable {\r\n const postData = {\r\n phone: phone\r\n };\r\n return this.service.post('user/verify_phone', postData);\r\n }\r\n /** 檢查手機驗證碼 */\r\n checkPhoneVerifyCodeObserver(key: string, code: string): Observable {\r\n const postData = {\r\n key: key,\r\n code: code\r\n };\r\n return this.service.post('user/verify_code_phone', postData);\r\n }\r\n\r\n\r\n /** 請求信箱驗證 */\r\n requestEmailVerifyCodeLoginedObserver(): Observable {\r\n return this.service.get('user/verify_email');\r\n }\r\n /** 請求信箱驗證 */\r\n requestEmailVerifyCodeObserver(email: string): Observable {\r\n const postData = {\r\n email: email\r\n };\r\n return this.service.post('user/verify_email', postData);\r\n }\r\n /** 檢查信箱驗證碼 */\r\n checkEmailVerifyCodeLoginedObserver(key: string, code: string): Observable {\r\n const postData = {\r\n key: key,\r\n code: code\r\n };\r\n return this.service.post('user/verify_code_email_member', postData);\r\n }\r\n /** 檢查信箱驗證碼 */\r\n checkEmailVerifyCodeObserver(key: string, code: string): Observable {\r\n const postData = {\r\n key: key,\r\n code: code\r\n };\r\n return this.service.post('user/verify_code_email', postData);\r\n }\r\n /** 稍後在驗證信箱 */\r\n checkEmailVerifyCodeLaterObserver(email: string): Observable {\r\n const postData = {\r\n email: email\r\n };\r\n return this.service.post('user/verify_code_later_email', postData);\r\n }\r\n\r\n /** 送出會員註冊 */\r\n requestApplyMemberObserver(data: any): Observable {\r\n return this.service.post('user/register_member', data);\r\n }\r\n\r\n /** 請求要補正項目 */\r\n requestFixItemsObserver(): Observable {\r\n return this.service.get('user/fix_items');\r\n }\r\n\r\n /** 請求要補正項目 */\r\n requestFixDataObserver(data: any): Observable {\r\n return this.service.post('user/fix_data', data);\r\n }\r\n}\r\n","export enum IndictmentCourtId {\r\n NONE = 0,\r\n In_D_Taipei = 13, // 臺灣臺北地方檢察署\r\n In_D_Shihlin = 17, // 臺灣士林地方檢察署\r\n In_D_New_Taipei = 16, // 臺灣新北地方檢察署\r\n In_D_Taoyuan = 14, // 臺灣桃園地方檢察署\r\n In_D_Hsinchu = 15, // 臺灣新竹地方檢察署\r\n In_D_Miaoli = 18, // 臺灣苗栗地方檢察署\r\n In_D_Taichung = 21, // 臺灣臺中地方檢察署\r\n In_D_Changhua = 22, // 臺灣彰化地方檢察署\r\n In_D_Nantou = 24, // 臺灣南投地方檢察署\r\n In_D_Yunlin = 23, // 臺灣雲林地方檢察署\r\n In_D_Chiayi = 35, // 臺灣嘉義地方檢察署\r\n In_D_Tainan = 31, // 臺灣臺南地方檢察署\r\n In_D_Kaohsiung = 32, // 臺灣高雄地方檢察署\r\n In_D_Qiaotou = 36, // 臺灣橋頭地方檢察署\r\n In_D_Pingtung = 33, // 臺灣屏東地方檢察署\r\n In_D_Taitung = 42, // 臺灣臺東地方檢察署\r\n In_D_Hualien = 41, // 臺灣花蓮地方檢察署\r\n In_D_Yilan = 12, // 臺灣宜蘭地方檢察署\r\n In_D_Keelung = 11, // 臺灣基隆地方檢察署\r\n In_D_Penghu = 34, // 臺灣澎湖地方檢察署\r\n In_D_Kinmen = 61, // 福建金門地方檢察署\r\n In_D_Lienchiang = 62, // 福建連江地方檢察署\r\n In_H = 10, // 臺灣高等檢察署\r\n In_H_Taichung = 20, // 臺灣高等檢察署臺中檢察分署\r\n In_H_Tainan = 30, // 臺灣高等檢察署臺南檢察分署\r\n In_H_Kaohsiung = 50, // 臺灣高等檢察署高雄檢察分署\r\n In_H_Hualien = 40, // 臺灣高等檢察署花蓮檢察分署\r\n In_H_Kinmen = 60, // 福建高等檢察署金門檢察分署\r\n}\r\n","export enum JudgmentCourtId {\r\n NONE = 0,\r\n V_D_Taipei = 1,\r\n V_D_Shihlin = 2,\r\n V_D_New_Taipei = 3,\r\n V_D_Keelung = 4,\r\n V_D_Yilan = 5,\r\n V_D_Taoyuan = 6,\r\n V_D_Hsinchu = 7,\r\n V_D_Miaoli = 8,\r\n V_D_Taichung = 9,\r\n V_D_Changhua = 10,\r\n V_D_Nantou = 11,\r\n V_D_Yunlin = 12,\r\n V_D_Chiayi = 13,\r\n V_D_Tainan = 14,\r\n V_D_Kaohsiung = 15,\r\n V_D_Qiaotou = 16,\r\n V_D_Hualien = 17,\r\n V_D_Taitung = 18,\r\n V_D_Pingtung = 19,\r\n V_D_Penghu = 20,\r\n V_D_Kinmen = 21,\r\n V_D_Lienchiang = 22,\r\n V_D_Kaohsiung_Juvenile = 23,\r\n V_H = 24,\r\n V_H_Taichung = 25,\r\n V_H_Tainan = 26,\r\n V_H_Hualien = 27,\r\n V_H_Kaohsiung = 28,\r\n V_H_Kinmen = 29,\r\n V_S = 30,\r\n V_I = 31,\r\n M_D_Taipei = 32,\r\n M_D_Shihlin = 33,\r\n M_D_New_Taipei = 34,\r\n M_D_Keelung = 35,\r\n M_D_Yilan = 36,\r\n M_D_Taoyuan = 37,\r\n M_D_Hsinchu = 38,\r\n M_D_Miaoli = 39,\r\n M_D_Taichung = 40,\r\n M_D_Changhua = 41,\r\n M_D_Nantou = 42,\r\n M_D_Yunlin = 43,\r\n M_D_Chiayi = 44,\r\n M_D_Tainan = 45,\r\n M_D_Kaohsiung = 46,\r\n M_D_Qiaotou = 47,\r\n M_D_Hualien = 48,\r\n M_D_Taitung = 49,\r\n M_D_Pingtung = 50,\r\n M_D_Penghu = 51,\r\n M_D_Kinmen = 52,\r\n M_D_Lienchiang = 53,\r\n M_H = 54,\r\n M_H_Taichung = 55,\r\n M_H_Tainan = 56,\r\n M_H_Hualien = 57,\r\n M_H_Kaohsiung = 58,\r\n M_H_Kinmen = 59,\r\n M_S = 60,\r\n M_I = 61,\r\n A_D_Taipei = 62,\r\n A_D_Shihlin = 63,\r\n A_D_New_Taipei = 64,\r\n A_D_Keelung = 65,\r\n A_D_Yilan = 66,\r\n A_D_Taoyuan = 67,\r\n A_D_Hsinchu = 68,\r\n A_D_Miaoli = 69,\r\n A_D_Taichung = 70,\r\n A_D_Changhua = 71,\r\n A_D_Nantou = 72,\r\n A_D_Yunlin = 73,\r\n A_D_Chiayi = 74,\r\n A_D_Tainan = 75,\r\n A_D_Kaohsiung = 76,\r\n A_D_Qiaotou = 77,\r\n A_D_Hualien = 78,\r\n A_D_Taitung = 79,\r\n A_D_Pingtung = 80,\r\n A_D_Penghu = 81,\r\n A_D_Kinmen = 82,\r\n A_D_Lienchiang = 83,\r\n A_H_Taipei = 84,\r\n A_H_Taichung = 85,\r\n A_H_Kaohsiung = 86,\r\n A_S = 87,\r\n A_I = 88,\r\n O_P = 89,\r\n O_C = 90,\r\n O_J = 91,\r\n}\r\n","export enum JudgmentType {\r\n Civil = 0,\r\n Criminal = 1,\r\n Administrative = 2,\r\n Intellectual = 5,\r\n Other = 3,\r\n Indictment = 4,\r\n}\r\n","export enum JudgmentSearchResultType {\r\n All = 0,\r\n Civil = 1,\r\n Criminal = 2,\r\n Administrative = 3,\r\n Intellectual = 6,\r\n Other = 4,\r\n Indictment = 5,\r\n}\r\n","export enum JudicialInterpretCaseType {\r\n Court = 0,\r\n Precedent = 1,\r\n Judgment = 2,\r\n Resolution = 3,\r\n Discipline = 4,\r\n Seminar = 5,\r\n Grand = 6,\r\n Execute = 7,\r\n}\r\nexport enum JudicialInterpretSearchCourtCatalog {\r\n Court = 0,\r\n Grand = 1,\r\n Precedent = 2,\r\n Judgment = 3,\r\n Resolution = 4,\r\n Discipline = 5,\r\n Seminar = 6,\r\n Execute = 7,\r\n}","export enum JudicialInterpretCourtId {\r\n /* ! 司法院解釋 */\r\n //ctypeABC = 1, //司法解釋 (不分民刑事) -- 大理院解釋 / 最高法院解釋 / 司法院解釋\r\n /** 司法解釋 (不分民刑事) -- 大法官解釋 */\r\n ctypeD, // 1\r\n /** 大理院解釋 */\r\n ctypeA,\r\n /** 最高法院解釋 */\r\n ctypeB,\r\n /** 司法院解釋 */\r\n ctypeC,\r\n /** 大法官不受理案件 (不分民刑事) -- 大法官不受理案件 */\r\n ttypeX, // 5\r\n\r\n /* ! 大法庭 */\r\n /** 大法庭民事提案裁定 */\r\n jtype21gc1m1, // 6\r\n /** 大法庭民事大法庭統一見解裁判 (大法庭) */\r\n jtype21gc1m3,\r\n /** 大法庭民事徵詢程序階段統一見解裁判 (意見統一) */\r\n jtype21gc1m4,\r\n /** 大法庭刑事提案裁定 */\r\n jtype22gc2m1,\r\n /** 大法庭刑事大法庭統一見解裁判 (大法庭) */\r\n jtype22gc2m3, // 10\r\n /** 大法庭刑事徵詢程序階段統一見解裁判 (意見統一) */\r\n jtype22gc2m4, // 11\r\n /** 大法庭刑事撤回撤銷裁判 */\r\n jtype22gc2m2,\r\n /** 大法庭行政提案裁定 */\r\n jtype23gc3m1,\r\n /** 大法庭行政大法庭統一見解裁判 (大法庭) */\r\n jtype23gc3m3, // 15\r\n /** 大法庭行政徵詢程序階段統一見解裁判 (意見統一) */\r\n jtype23gc3m4,\r\n\r\n /* ! 判例 */\r\n /** 最高法院判例 -- 最高法院民事判例 */\r\n jtypeA, // 16\r\n /** 最高法院判例 -- 最高法院刑事判例 */\r\n jtypeB,\r\n /** 最高行政法院判例(不分民刑事) -- 最高行政法院判例 */\r\n jtypeE,\r\n /** 最高法院判例 -- 停止適用高法院民事判例 */\r\n jtype1A, // \r\n /** 最高法院判例 -- 停止適用高法院刑事判例 */\r\n jtype1B, // \r\n /** 最高法院判例 -- 停止適用高法院行政判例 */\r\n jtype1E, // 21\r\n\r\n /* ! 精選裁判 */\r\n /** 最高法院裁判民事 一般 */\r\n jtypeC0, // 22\r\n /** 最高法院裁判民事 廢止 */\r\n jtypeC1,\r\n /** 最高法院裁判刑事 一般 */\r\n jtypeD0,\r\n /** 最高法院裁判刑事 廢止 */\r\n jtypeD1,\r\n /** 最高法院裁判行政 一般 */\r\n jtypeF0,\r\n /** 最高法院裁判行政 廢止 */\r\n jtypeF1, // 27\r\n\r\n /** 高等法院裁判 -- 高等法院民事裁判 */\r\n jtypeG, // 28\r\n /** 高等法院裁判 -- 高等法院刑事裁判 */\r\n jtypeH,\r\n /** 高等行政法院裁判 (不分民刑事) -- 高等行政法院裁判 */\r\n jtypeK, // 30\r\n /** 智慧財產法院裁判(民刑事) -- 智慧財產法院民事裁判 */\r\n jtypeO,\r\n /** 智慧財產法院裁判(民刑事) -- 智慧財產法院刑事裁判 */\r\n jtypeP,\r\n /** 智慧財產法院裁判 (行政) -- 智慧財產法院行政裁判 */\r\n jtypeQ,\r\n /** 地方法院裁判 -- 地方法院民事裁判 */\r\n jtypeI,\r\n /** 地方法院裁判 -- 地方法院刑事裁判 */\r\n jtypeJ,\r\n /** 地方法院行政訴訟裁判 */\r\n jtypeR, // 36\r\n\r\n /** 最高法院具參考價值裁判 -- 最高法院民事庭具參考價值裁判 */\r\n jtypeU,\r\n /** 最高法院具參考價值裁判 -- 最高法院刑事庭具參考價值裁判 */\r\n jtypeV,\r\n /** 高院暨所屬法院具參考價值裁判 -- 高院暨所屬法院民事庭具參考價值裁判 */\r\n jtypeS,\r\n /** 高院暨所屬法院具參考價值裁判 -- 高院暨所屬法院刑事庭具參考價值裁判 */\r\n jtypeT, // 40\r\n\r\n /* ! 決議 */\r\n /** 最高法院決議民事 一般 */\r\n dtypeA0,\r\n /** 最高法院決議民事 廢止 */\r\n dtypeA1,\r\n /** 最高法院決議刑事 一般 */\r\n dtypeB0,\r\n /** 最高法院決議刑事 廢止 */\r\n dtypeB1,\r\n /** 最高行政法院聯席會議決議 一般 */\r\n dtypeC0,\r\n /** 最高行政法院聯席會議決議 廢止 */\r\n dtypeC1, // 46\r\n\r\n /* ! 公懲 */\r\n /** 公懲會議決 (不分民刑事) -- 公懲會議決 */\r\n jtypeL, // 47\r\n\r\n /* ! 座談會 */\r\n /** 法律問題座談 -- 民事法律問題座談 */\r\n qtypeA,\r\n /** 公證法律問題研討 */\r\n qtypeG,\r\n /** 法律問題座談 -- 刑事法律問題座談 */\r\n qtypeB,\r\n /** 行政法律問題座談(不分民刑事) -- 行政法律問題座談 */\r\n qtypeC,\r\n /** 公懲法律問題座談(不分民刑事) -- 公懲法律問題座談 */\r\n qtypeD, // 52\r\n\r\n /* ! 行政函釋 */\r\n /** 行政函釋 一般 */\r\n etypeX0,\r\n /** 行政函釋 廢止 */\r\n etypeX1,\r\n\r\n /* ! 憲法法庭 */\r\n /** */\r\n xftype38,\r\n xftype39,\r\n xftype40,\r\n}\r\n","export enum LawRuleCategoryIcon {\r\n '內政' = 'law_rule_category/內政.png',\r\n '外交僑務' = 'law_rule_category/外交僑務.png',\r\n '國防退輔' = 'law_rule_category/國防退輔.png',\r\n '財政金融' = 'law_rule_category/財政金融.png',\r\n '教育' = 'law_rule_category/教育.png',\r\n '法務' = 'law_rule_category/法務.png',\r\n '經濟貿易' = 'law_rule_category/經濟貿易.png',\r\n '交通建設' = 'law_rule_category/交通建設.png',\r\n '勞動人力' = 'law_rule_category/勞動人力.png',\r\n '農業' = 'law_rule_category/農業.png',\r\n '衛生社福' = 'law_rule_category/衛生社福.png',\r\n '環境資源' = 'law_rule_category/環境資源.png',\r\n '文化觀光' = 'law_rule_category/文化觀光.png',\r\n '國家發展' = 'law_rule_category/國家發展.png',\r\n '科技' = 'law_rule_category/科技.png',\r\n '海洋' = 'law_rule_category/海洋.png',\r\n '原住民族' = 'law_rule_category/原住民族.png',\r\n '客家' = 'law_rule_category/客家.png',\r\n '主計' = 'law_rule_category/主計.png',\r\n '人事其他' = 'law_rule_category/人事其他.png',\r\n '總統' = 'law_rule_category/總統.png',\r\n '立法' = 'law_rule_category/立法.png',\r\n '司法' = 'law_rule_category/司法.png',\r\n '考試' = 'law_rule_category/考試.png',\r\n '監察' = 'law_rule_category/監察.png',\r\n '其他' = 'law_rule_category/其他.png',\r\n}\r\n","import { LawRuleSubcategory } from './law-rule-subcategory';\r\nimport { LawRuleCategoryIcon } from './law-rule-category-icon.enum';\r\n\r\nexport class LawRuleCategory {\r\n name: string;\r\n icon: string;\r\n subcategory: LawRuleSubcategory[];\r\n\r\n getIconStyle(): any {\r\n return {\r\n 'background-image': 'url(/assets/img/' + LawRuleCategoryIcon[this.name] + ')'\r\n };\r\n }\r\n}\r\n","import { LawRuleCase } from \"../child-content-storage-personal/law-rule/law-rule-case\";\r\nimport { LawRuleExamTitleColor } from \"./law-rule-exam-title-color.enum\";\r\n\r\nexport class LawRuleExamIndex {\r\n name: string;\r\n list: LawRuleCase[];\r\n\r\n getNameStyle(): any {\r\n return { 'color': LawRuleExamTitleColor[this.name] };\r\n }\r\n}\r\n","export enum LawRuleExamTitleColor {\r\n '民事法類' = '#2b78e4',\r\n '刑事法類' = '#009e0f',\r\n '行政法類' = '#f90',\r\n '憲法與其他' = '#c27ba0',\r\n '國際法類' = '#6aa84f',\r\n '商事法類' = '#674ea7',\r\n '法律倫理類' = '#ea9999',\r\n '智慧財產法' = '#2b78e4',\r\n '勞動社會法' = '#009e0f',\r\n '財稅法' = '#f90',\r\n '海商法與海洋法' = '#c27ba0',\r\n}\r\n","import { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { OrderWayCourtLevel, OrderWayJudgDate, OrderWayEditDate } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { SearcherKeywordKind } from 'projects/lwlib/src/keyword-searcher/searcher-keyword-kind';\r\nimport { TeamNoteStatusId } from 'projects/lwlib/src/team-note-status-popup/team-note-status-id.enum';\r\n\r\nexport class FilterCondition {\r\n constructor(\r\n // public get_orderWayCourtLevel: () => OrderWayCourtLevel,\r\n // public get_orderWayJudgDate: () => OrderWayJudgDate,\r\n // public get_orderWayEditDate: () => OrderWayEditDate\r\n ) { }\r\n\r\n member_id: string;\r\n\r\n meet_not_join_member_id_list: string[] = [];\r\n meet_join_member_id_list: string[] = [];\r\n\r\n note_publish_status: number;\r\n\r\n // 指定成員的打卡狀態, { 成員ID, 打卡狀態 }\r\n checkin_member_id: string;\r\n checkin_member_status: number;\r\n\r\n /** 刷新 */\r\n refresh: boolean;\r\n /** 頁碼 */\r\n pageIndex: number = 1;\r\n /** 所屬類別 */\r\n category: Category = Category.allCategory;\r\n /** 所屬項目 */\r\n subcategory: Subcategory = Subcategory.allSubcategory;\r\n /** 搜尋關鍵字 */\r\n searchKeywords: SearcherKeyword[] = [\r\n { index: 0, keyword: '' },\r\n { index: 1, keyword: '' },\r\n { index: 2, keyword: '' },\r\n ] as SearcherKeyword[];\r\n /** 每頁數量 */\r\n per_page_note_amount: number = 20;\r\n /** enum 排序法院等級 */\r\n // _orderWayCourtLevel: () => OrderWayCourtLevel;\r\n // get orderWayCourtLevel(): OrderWayCourtLevel { return this.get_orderWayCourtLevel(); }\r\n orderWayCourtLevel: OrderWayCourtLevel;\r\n /** enum 排序裁判日期 */\r\n // _orderWayJudgDate: () => OrderWayJudgDate;\r\n // get orderWayJudgDate(): OrderWayJudgDate { return this.get_orderWayJudgDate(); }\r\n orderWayJudgDate: OrderWayJudgDate;\r\n /** enum 排序保存日期 */\r\n // _orderWayEditDate: () => OrderWayEditDate;\r\n // get orderWayEditDate(): OrderWayEditDate { return this.get_orderWayEditDate(); }\r\n orderWayEditDate: OrderWayEditDate;\r\n\r\n // 過濾篩選燈號, 全體\r\n check_in_status: number = -1;\r\n // 過濾篩選燈號, 自己\r\n self_check_in_status: number = -1;\r\n // 篩選日期\r\n check_in_past_day: number = 0;\r\n\r\n static emptySearchKeywords(): SearcherKeyword[] {\r\n return [\r\n { index: 0, keyword: '' },\r\n { index: 1, keyword: '' },\r\n { index: 2, keyword: '' },\r\n ] as SearcherKeyword[];\r\n }\r\n\r\n clearSearchKeywords(): void {\r\n this.searchKeywords = FilterCondition.emptySearchKeywords();\r\n // this.searchKeywords$.next(FilterCondition.emptySearchKeywords());\r\n }\r\n isAllSearchKeywordEmpty(): boolean {\r\n return this.searchKeywords.every(s => !s.keyword);\r\n }\r\n\r\n\r\n toPostData(): any {\r\n const data: any = {};\r\n\r\n if (this.refresh) {\r\n data.refresh = true;\r\n }\r\n\r\n if (this.category.sn > -1) {\r\n data.category_text = this.category.text;\r\n } else if (this.category === Category.unCategory) {\r\n data.category_text = '';\r\n }\r\n\r\n if (this.subcategory.sn > -1) {\r\n data.subcategory_text = this.subcategory.text;\r\n } else if (this.subcategory === Subcategory.unSubcategory) {\r\n data.subcategory_text = '';\r\n }\r\n\r\n data.keyword = [];\r\n if (this.searchKeywords && this.searchKeywords.length > 0) {\r\n this.searchKeywords\r\n .filter(a => a.keyword)\r\n .forEach(item => {\r\n if (item.keyword) {\r\n data.keyword.push(item);\r\n }\r\n });\r\n // let keywordSearchItems = this.searchKeywords;\r\n // if (keywordSearchItems.length > 0) {\r\n // }\r\n }\r\n\r\n data.per_page_note_amount = this.per_page_note_amount;\r\n data.page_index = this.pageIndex;\r\n\r\n // const personalConfig = this.personalConfigService.personalConfig;\r\n data.order_way_edit_date = this.orderWayEditDate; // = personalConfig.orderWayEditDate;\r\n data.order_way_court_level = this.orderWayCourtLevel; // = personalConfig.orderWayCourtLevel;\r\n data.order_way_judg_date = this.orderWayJudgDate; // = personalConfig.orderWayJudgDate;\r\n\r\n data.check_in_past_day = this.check_in_past_day;\r\n data.check_in_status = this.check_in_status;\r\n data.self_check_in_status = this.self_check_in_status;\r\n\r\n if (this.member_id) {\r\n data.member_id = this.member_id;\r\n }\r\n\r\n if (this.note_publish_status > 0) {\r\n data.note_publish_status = this.note_publish_status;\r\n }\r\n\r\n if (this.meet_not_join_member_id_list.length > 0) {\r\n data.meet_not_join_member_id_list = this.meet_not_join_member_id_list;\r\n }\r\n if (this.meet_join_member_id_list.length > 0) {\r\n data.meet_join_member_id_list = this.meet_join_member_id_list;\r\n }\r\n\r\n data.checkin_member_id = this.checkin_member_id;\r\n data.checkin_member_status = this.checkin_member_status;\r\n\r\n return data;\r\n }\r\n\r\n /** 取得有效高亮的關鍵字regex字串 */\r\n getHighlightKeyword(kind: SearcherKeywordKind): string {\r\n const keyword = this.searchKeywords.filter(k => {\r\n return k.kind === kind\r\n && k.keyword;\r\n })\r\n .map(k => k.keyword.replace(/\\s+/g, ''))\r\n .join(' ');\r\n\r\n return keyword;\r\n }\r\n reset(): void {\r\n this.searchKeywords = [];\r\n this.orderWayCourtLevel = OrderWayCourtLevel.None;\r\n this.orderWayJudgDate = OrderWayJudgDate.None;\r\n this.orderWayEditDate = OrderWayEditDate.NewestTop;\r\n this.pageIndex = 1;\r\n this.per_page_note_amount = 20;\r\n this.check_in_past_day = 0;\r\n this.self_check_in_status = -1;\r\n this.check_in_status = -1;\r\n this.category = Category.allCategory;\r\n this.subcategory = Subcategory.allSubcategory;\r\n this.note_publish_status = TeamNoteStatusId.None;\r\n this.member_id = '';\r\n this.check_in_past_day = 0;\r\n this.check_in_status = -1;\r\n }\r\n}\r\n","export enum BookmarkType {\r\n Bookmark = 0\r\n}","import { CaseTag } from './case-tag';\r\n\r\nexport class CaseTagUpdateRequest {\r\n note_id: string;\r\n list: CaseTag[];\r\n\r\n team_id: string;\r\n team_note_id: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Observable } from 'rxjs';\r\nimport { CaseTagUpdateRequest } from './case-tag-update-request';\r\nimport { CaseTag } from './case-tag';\r\nimport { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CaseTagService {\r\n\r\n constructor(\r\n private service: AppService,\r\n ) { }\r\n\r\n typeTable: {\r\n [key in keyof typeof CaseType]: {\r\n search: (keyword: string) => Observable\r\n }\r\n } = {\r\n Judgment: {\r\n search: (keyword) => this.searchJudgmentObserver(keyword)\r\n },\r\n JudicialInterpret: {\r\n search: (keyword) => this.searchJudicialInterpretObserver(keyword)\r\n },\r\n LawRule: null,\r\n Indictment: {\r\n search: (keyword) => this.searchIndictmentObserver(keyword)\r\n },\r\n };\r\n\r\n searchObserver(type: CaseType, keyword: string): Observable {\r\n return this.typeTable[CaseType[type]].search(keyword);\r\n }\r\n\r\n\r\n updateJudgmentObserver(request: CaseTagUpdateRequest): Observable {\r\n return this.service.post('judgment/case_tag_update', request);\r\n }\r\n searchJudgmentObserver(keyword: string): Observable {\r\n return this.service.get('judgment/case_tag_search?keyword=' + keyword);\r\n }\r\n\r\n\r\n updateJudicialInterpretObserver(request: CaseTagUpdateRequest): Observable {\r\n return this.service.post('judicial_interpret/case_tag_update', request);\r\n }\r\n searchJudicialInterpretObserver(keyword: string): Observable {\r\n return this.service.get('judicial_interpret/case_tag_search?keyword=' + keyword);\r\n }\r\n\r\n\r\n updateIndictmentObserver(request: CaseTagUpdateRequest): Observable {\r\n return this.service.post('indcitment/case_tag_update', request);\r\n }\r\n searchIndictmentObserver(keyword: string): Observable {\r\n return this.service.get('indcitment/case_tag_search?keyword=' + keyword);\r\n }\r\n}\r\n","import { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { QueryList, ElementRef, Input } from '@angular/core';\r\nimport { IssueService } from './issue.service';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\n\r\nexport class Issue extends Serializable {\r\n sn: number;\r\n id: string;\r\n issue_text: string;\r\n answer_text: string;\r\n /** 時間由Server定義 */\r\n add_time: number;\r\n /** 時間由Server定義 */\r\n edit_time: number;\r\n link_summary_id: string;\r\n\r\n\r\n\r\n is_new_issue: boolean;\r\n editing_issue: boolean;\r\n editing_answer: boolean;\r\n edit_issue_text: string;\r\n edit_answer_text: string;\r\n edit_issue_input_id: string = Guid.newGuid();\r\n edit_answer_input_id: string = Guid.newGuid();\r\n\r\n highlightState: string = 'stop';\r\n\r\n focusIssueInput(): void {\r\n // console.log('focus issue input');\r\n const element = document.getElementById(this.edit_issue_input_id);\r\n element.focus();\r\n }\r\n focusAnswerInput(): void {\r\n // console.log('focus answer input');\r\n const element = document.getElementById(this.edit_answer_input_id);\r\n element.focus();\r\n }\r\n playHighlight(): void {\r\n this.highlightState = 'play';\r\n setTimeout(() => {\r\n this.highlightState = 'play';\r\n });\r\n }\r\n}\r\n","import { JudgmentProperty } from './judgment-property';\r\nimport { Issue } from './issue';\r\nimport { CaseTag } from './case-tag';\r\nimport { SummaryTypeItem } from './summary-type-item';\r\nimport { ShareInfo } from './share-info';\r\nimport { JudgmentCourtId } from '../../child-content-judgment-search/judgment-condition/judgment-court-id.enum';\r\nimport { JudgmentType } from '../../child-content-judgment-search/judgment-condition/judgment-type.enum';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { CaseTypeId } from 'projects/lwlib/src/case-type/case-type-id.enum';\r\nimport { PropertyId } from 'projects/lwlib/src/case-type/property-id.enum';\r\nimport { CourtTypeId } from 'projects/lwlib/src/case-type/court-type-id.enum';\r\nimport { LawRuleCaseRelate } from '../law-rule/law-rule-case-relate';\r\nimport { JudgmentService } from './judgment.service';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { CheckInDataJudgmentCase } from 'projects/lwlib/src/check-in/check-in-data-judgment-case';\r\nimport { CheckInJudgment } from 'projects/lwlib/src/check-in/check-in-judgment';\r\nimport { CheckInLawArticle } from 'projects/lwlib/src/check-in/check-in-law-article';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\nexport class JudgmentCase {\r\n static court_id_name: { [key: string]: string } = {\r\n V: '民事',\r\n M: '刑事',\r\n A: '行政',\r\n O: '其他'\r\n };\r\n\r\n judgmentService: JudgmentService;\r\n\r\n case_base: string;\r\n\r\n\r\n // list\r\n sn: number;\r\n get type_name(): string { return this.court_id ? JudgmentCase.court_id_name[JudgmentCourtId[this.court_id][0]] : ''; }\r\n\r\n\r\n\r\n\r\n // case basic\r\n /** 案件ID */\r\n case_id: string;\r\n\r\n /** 法院ID */\r\n court_id: JudgmentCourtId;\r\n get courtIdString(): string { return JudgmentCourtId[this.court_id]; }\r\n\r\n /** 裁判種類:民事、刑事... */\r\n type: JudgmentType;\r\n get typeString(): string { return JudgmentType[this.type]; }\r\n // get courtTypeId(): CourtTypeId { return CourtTypeId[this.typeString]; }\r\n\r\n /** 屬性:判決、裁定... */\r\n property: JudgmentProperty;\r\n get propertyString(): string { return JudgmentProperty[this.property]; }\r\n // get propertyId(): PropertyId { return PropertyId['Judgment_' + this.propertyString]; }\r\n\r\n /** 法院名稱 */\r\n court: string;\r\n /** 案號:年, 字, 號 */\r\n case_number: string[];\r\n /** 案由 */\r\n case_reason: string;\r\n /** 日期 */\r\n judg_date: number[];\r\n\r\n\r\n\r\n\r\n // case full\r\n /** 全文內容 */\r\n fulltext: string;\r\n /** 非原生內文 */\r\n extra_content: string[][];\r\n /** pdf */\r\n pdf_url: string;\r\n // 案件內容種類\r\n case_content_type: string;\r\n\r\n\r\n // search result\r\n /** 內容預覽 */\r\n preview_html: string;\r\n /** 案件法條 */\r\n relate_law_rule_list: LawRuleCaseRelate[];\r\n get relate_law_rule_name_list() {\r\n return this.relate_law_rule_list.map(r => {\r\n return {\r\n name: r.name,\r\n list: r.list.map(rs => rs[1])\r\n };\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n // note simple\r\n /** 筆記ID */\r\n note_id: string;\r\n /** 類別名稱 */\r\n category_text: string;\r\n /** 類別 */\r\n get category(): Category {\r\n return this.category_text ?\r\n this.judgmentService.categoryDict[this.category_text] :\r\n Category.unCategory;\r\n }\r\n /** 項目名稱 */\r\n subcategory_text: string;\r\n get subcategory_key(): string { return this.category_text + '-' + this.subcategory_text; }\r\n /** 項目 */\r\n get subcategory(): Subcategory {\r\n return this.category_text && this.subcategory_text ?\r\n this.judgmentService.subcategoryDict[this.subcategory_key] :\r\n Subcategory.unSubcategory;\r\n }\r\n /** 筆記名稱 */\r\n file_subject: string;\r\n file_subject2: string;\r\n\r\n // category: Category;\r\n // subcategory: Subcategory;\r\n\r\n\r\n\r\n\r\n // note storage\r\n issue_list: Issue[];\r\n case_tag_list: CaseTag[];\r\n summary: SummarySave[];\r\n summary_type_item_list: SummaryTypeItem[];\r\n edit_date: number;\r\n comment: string;\r\n share_info: ShareInfo;\r\n\r\n check_in_data: CheckInDataJudgmentCase;\r\n checkIn: CheckInJudgment;\r\n checkInButtonId: string;\r\n get checkInButtonElement(): HTMLElement { return document.getElementById(this.checkInMenuId); }\r\n checkInMenuId: string;\r\n get checkInMenuElement(): HTMLElement { return document.getElementById(this.checkInMenuId); }\r\n\r\n showCheckInMenu: boolean = false;\r\n onCheckInMenuShow: () => void;\r\n onCheckInMenuHide: () => void;\r\n registeCheckInMenuClickEvent: (ev: MouseEvent) => void;\r\n checkInTotalCount: number = 0;\r\n checkInStatusClassName: string = '';\r\n get checkInTodayChecked(): boolean {\r\n if (this.checkIn) {\r\n return this.checkIn.today_checked;\r\n }\r\n return true;\r\n }\r\n onOpenCheckInDetailDataPopup: () => void;\r\n\r\n\r\n sfy_url: string;\r\n\r\n // putin_team: { [key: string]: Date } = {};\r\n putin_team_count: number = 0;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n toCourtId(): CourtId {\r\n return CourtId[this.courtIdString];\r\n }\r\n toPropertyId(): PropertyId {\r\n return PropertyId['Judgment_' + this.propertyString];\r\n }\r\n toCourtTypeId(): CourtTypeId {\r\n return CourtTypeId[this.typeString];\r\n }\r\n toCaseTypeId(): CaseTypeId {\r\n return CaseTypeId.Judgment;\r\n }\r\n\r\n toggleShowCheckInMenu(): void {\r\n this.showCheckInMenu = !this.showCheckInMenu;\r\n if (this.showCheckInMenu) {\r\n this.onCheckInMenuShow();\r\n } else {\r\n this.onCheckInMenuHide();\r\n }\r\n }\r\n checkInCase(status: number): void {\r\n setTimeout(() => {\r\n this.checkInTotalCount++;\r\n this.checkInStatusClassName = CheckInLawArticle.statusClassNameDict[status] || '';\r\n this.checkIn.today_checked = true;\r\n this.checkIn.total_count++;\r\n // this.showCheckInMenu = true;\r\n }, 1);\r\n\r\n this.checkIn.onCheckIn(status);\r\n }\r\n}\r\n","export enum JudgmentProperty {\r\n /** 判決 */\r\n Judgment = 0,\r\n /** 裁定 */\r\n Decision = 1,\r\n /** 其他 */\r\n Other = 2\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, Subscription, of, empty } from 'rxjs';\r\nimport { JudgmentCase } from './judgment-case';\r\nimport { JudgmentCase as JudgmentCase2 } from \"projects/lwlib/src/judgment/judgment-case\";\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { map, tap, skip, skipUntil, flatMap, filter } from 'rxjs/operators';\r\nimport { JudgmentCaseList, JudgmentCaseList2 } from './judgment-case-list';\r\nimport { Issue } from './issue';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { NoteClassifyRequest } from './note-classify-request';\r\nimport { NoteRenameRequest } from './note-rename-request';\r\nimport { ShareRequest } from './share-request';\r\nimport { CategoryAddRequest } from './category-add-request';\r\nimport { DataUpdateResult } from 'projects/lwlib/src/data-update-result';\r\nimport { CategoryEditRequest } from './category-edit-request';\r\nimport { CategoryDeleteRequest } from './category-delete-request';\r\nimport { CategoryOrderRequest } from './category-order-request';\r\nimport { SubcategoryAddRequest } from './subcategory-add-request';\r\nimport { SubcategoryEditRequest } from './subcategory-edit-request';\r\nimport { SubcategoryDeleteRequest } from './subcategory-delete-request';\r\nimport { SubcategoryOrderRequest } from './subcategory-order-request';\r\nimport { CategoryOrderRequestData } from './category-order-request-data';\r\nimport { SubcategoryOrderRequestData } from 'projects/lwlib/src/edit-category-popup/subcategory-order-request-data';\r\nimport { JudgmentType } from '../../child-content-judgment-search/judgment-condition/judgment-type.enum';\r\nimport { JudgmentSearchCondition } from '../../child-content-judgment-search/judgment-condition/judgment-search-condition';\r\nimport { JudgmentCourtCount } from './judgment-court-count';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { CaseTag } from './case-tag';\r\nimport { CaseTagUpdateRequest } from './case-tag-update-request';\r\nimport { Judgment } from 'projects/desktop/src/app/root/root-note-work-judgment/judgment';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { CategoryList } from 'projects/lwlib/src/category/category-list';\r\nimport { SubcategoryList } from 'projects/lwlib/src/category/subcategory-list';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\nimport { SummaryListOrderRequest } from 'projects/lwlib/src/summary-list/summary-list-order-request';\r\nimport { SummaryDeleteRequest } from 'projects/lwlib/src/summary-list/summary-delete-request';\r\nimport { CheckInJudgment } from 'projects/lwlib/src/check-in/check-in-judgment';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { CheckInDataJudgmentCase } from 'projects/lwlib/src/check-in/check-in-data-judgment-case';\r\nimport { FilterCondition } from '../filter-condition';\r\nimport { NotePutInTeam } from 'projects/lwlib/src/team/note-put-in-team';\r\nimport { CaseTypeId } from 'projects/lwlib/src/case-type/case-type-id.enum';\r\nimport { SaveResultStatusId } from 'projects/lwlib/src/save-count-limit-popup/save-result-status.enum';\r\nimport { SaveStatus } from 'projects/lwlib/src/save-status/save-status';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class JudgmentService {\r\n // private _categoryList: CategoryList;\r\n // private _subcategoryList: SubcategoryList;\r\n // categoryList: CategoryList;\r\n // subcategoryList: SubcategoryList;\r\n\r\n filterCondition: FilterCondition = new FilterCondition();\r\n\r\n categoryList: Category[] = [];\r\n subcategoryList: Subcategory[] = [];\r\n\r\n /** key = category.text */\r\n categoryDict: { [key: string]: Category } = {};\r\n /** key = subcategory.category+'-'+subcategory.text */\r\n subcategoryDict: { [key: string]: Subcategory } = {};\r\n\r\n storageNoteTotalCount: number;\r\n storagePageIndex: number;\r\n storageNoteList: JudgmentCase[];\r\n storageNoteList2: JudgmentCase2[];\r\n storageNoteList$: Subject = new Subject();\r\n\r\n saveStatus: SaveStatus;\r\n\r\n\r\n // private _noteList: JudgmentCaseList;\r\n // get noteList(): JudgmentCaseList { return this._noteList; }\r\n // set noteList(value: JudgmentCaseList) { this._noteList = value; }\r\n\r\n categoryList$: Subject = new Subject();\r\n subcategoryList$: Subject = new Subject();\r\n noteList$: Subject = new Subject();\r\n note$: Subject = new Subject();\r\n\r\n pullCategoryListDeep: number = 0;\r\n\r\n constructor(\r\n private service: AppService,\r\n ) {\r\n // console.log('cons jdug service');\r\n // this.categoryList$.subscribe(r => {\r\n // this._categoryList = r;\r\n // this.categoryList = r;\r\n // });\r\n // this.subcategoryList$.subscribe(r => {\r\n // this._subcategoryList = r;\r\n // this.subcategoryList = r;\r\n // });\r\n // this.noteList$.subscribe(r => {\r\n // this.noteList = r;\r\n // });\r\n }\r\n\r\n // 儲存狀況\r\n pullSaveStatusObserver(): Observable {\r\n return this.service.getRaw(`judgment/save_status`)\r\n .pipe(\r\n tap(ss => {\r\n if (this.saveStatus == null) {\r\n this.saveStatus = new SaveStatus();\r\n }\r\n this.saveStatus.judgment_note_save_current = ss.judgment_note_save_current;\r\n this.saveStatus.lawRule_note_save_current = ss.lawRule_note_save_current;\r\n this.saveStatus.judicialInterpret_note_save_current = ss.judicialInterpret_note_save_current;\r\n this.saveStatus.total_summary_save_current = ss.total_summary_save_current;\r\n this.saveStatus.judgment_note_save_max = ss.judgment_note_save_max;\r\n this.saveStatus.lawRule_note_save_max = ss.lawRule_note_save_max;\r\n this.saveStatus.judicialInterpret_note_save_max = ss.judicialInterpret_note_save_max;\r\n this.saveStatus.total_summary_save_max = ss.total_summary_save_max;\r\n })\r\n );\r\n }\r\n\r\n\r\n // 取類別清單\r\n getCategoryListObserver(): Observable {\r\n return this.service.get('judgment/category_list')\r\n .pipe(\r\n map(list => {\r\n return list.list.map(v => {\r\n const mapedItem: Category =\r\n Serializable.extendObjectFromResponseObject(new Category(), v);\r\n return mapedItem;\r\n });\r\n })\r\n );\r\n }\r\n pullCategoryListObserver(): Observable {\r\n return this.getCategoryListObserver()\r\n .pipe(\r\n tap(list => {\r\n this.categoryList = list;\r\n this.categoryDict = {};\r\n list.forEach(v => {\r\n this.categoryDict[v.key] = v;\r\n });\r\n console.log(this.categoryDict);\r\n })\r\n );\r\n }\r\n\r\n // 取項目清單\r\n getSubcategoryListObserver(): Observable {\r\n return this.service.get('judgment/subcategory_list')\r\n .pipe(\r\n map(list => {\r\n return list.list.map(v => {\r\n const mapedItem: Subcategory =\r\n Serializable.extendObjectFromResponseObject(new Subcategory(), v);\r\n return mapedItem;\r\n });\r\n })\r\n );\r\n }\r\n pullSubcategoryListObserver(): Observable {\r\n return this.getSubcategoryListObserver()\r\n .pipe(\r\n tap(list => {\r\n this.subcategoryList = list;\r\n this.subcategoryDict = {};\r\n list.forEach(v => {\r\n this.subcategoryDict[v.key] = v;\r\n });\r\n })\r\n );\r\n }\r\n\r\n // 取筆記清單\r\n getStorageNoteListObserver(filterCondition: FilterCondition): Observable {\r\n return this.service.post('judgment/personal_storage_full_list', filterCondition.toPostData())\r\n .pipe(\r\n tap(jcl => {\r\n const convertedList = jcl.list.map(n => {\r\n return Serializable.extendObjectFromResponseObject(new JudgmentCase(), n);\r\n });\r\n convertedList.forEach((n: JudgmentCase) => {\r\n n.judgmentService = this;\r\n\r\n // // 設定置入團隊\r\n // const putin_team_ = {};\r\n // Object.keys(n.putin_team)\r\n // .forEach(team_id => {\r\n // putin_team_[team_id] = new Date(n.putin_team[team_id]);\r\n // });\r\n // n.putin_team = putin_team_;\r\n // n.putin_team_count = Object.keys(n.putin_team)\r\n // .filter(team_id => n.putin_team[team_id].getTime() > 0)\r\n // .length;\r\n\r\n });\r\n jcl.list = convertedList;\r\n // console.log(jcl.list);\r\n })\r\n );\r\n }\r\n /** @deprecated 要修改以後JudgmentCase都用lwlib的 */\r\n pullStorageNoteListObserver(filterCondition: FilterCondition): Observable {\r\n return this.getStorageNoteListObserver(filterCondition)\r\n .pipe(\r\n tap(jcl => {\r\n // 重新設定筆記class\r\n jcl.list = jcl.list.map(n => Serializable.extendObjectFromResponseObject(new JudgmentCase(), n));\r\n // 重新連結各子清單\r\n jcl.list.forEach(n => {\r\n // 重新排序標籤清單\r\n if (n.case_tag_list) { n.case_tag_list.sort((a, b) => a.sn - b.sn); }\r\n // 重新設定爭點\r\n n.issue_list = n.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n\r\n });\r\n }),\r\n tap(jcl => {\r\n this.storageNoteTotalCount = jcl.count;\r\n this.storageNoteList = jcl.list;\r\n this.storagePageIndex = filterCondition.pageIndex;\r\n this.storageNoteList$.next(jcl.list);\r\n // console.log(jcl.list);\r\n })\r\n );\r\n }\r\n pullStorageNoteListObserver2(filterCondition: FilterCondition): Observable {\r\n return this.service.post('judgment/personal_storage_full_list', filterCondition.toPostData())\r\n .pipe(\r\n tap(jcl => {\r\n // 重新設置筆記class\r\n {\r\n const convertedList = jcl.list.map(n => {\r\n return Serializable.extend(new JudgmentCase2(), n);\r\n });\r\n convertedList.forEach((n: JudgmentCase2) => {\r\n n.judgmentService = this;\r\n });\r\n jcl.list = convertedList;\r\n }\r\n\r\n // 筆記個別設定\r\n {\r\n for (const note of jcl.list) {\r\n note.updateAll();\r\n // // 重新排序標籤清單\r\n // if (note.case_tag_list) {\r\n // note.case_tag_list.sort((a, b) => a.sn - b.sn);\r\n // }\r\n // // 重新設定爭點\r\n // note.issue_list = note.issue_list\r\n // .map(issue => Serializable.extend(new Issue(), issue));\r\n\r\n // note.updateCategoryIconStyle();\r\n // note.updateSubcategoryIconStyle();\r\n // note.updateAnswerIssueList();\r\n // note.updateSummaryItemCalssName();\r\n // note.updateOpenDateString();\r\n // note.updateSaveDateString();\r\n // note.updateJudgeDateStrings();\r\n // note.updatePropertyIconStyle();\r\n // note.updateCourtName();\r\n // note.updateCheckin();\r\n }\r\n }\r\n\r\n // service 倉庫設定\r\n this.storageNoteTotalCount = jcl.count;\r\n this.storageNoteList2 = jcl.list;\r\n this.storagePageIndex = filterCondition.pageIndex;\r\n\r\n\r\n console.log(jcl);\r\n\r\n })\r\n );\r\n }\r\n\r\n\r\n // 取摘要清單\r\n getSummaryListObserver(case_id: string): Observable {\r\n return this.service.get('judgment/summary?case_id=' + case_id);\r\n }\r\n\r\n\r\n\r\n // 取筆記置入訊息\r\n getNotePutinTeamObserver(case_base: string, note_id: string): Observable {\r\n return this.service.get(`${case_base}/check_note_in_team?note_id=${note_id}`)\r\n .pipe(\r\n map((list: NotePutInTeam[]) => {\r\n return list.map(v => {\r\n const item: NotePutInTeam = Serializable.extendObjectFromResponseObject(new NotePutInTeam(), v);\r\n item.copy_time = new Date(item.copy_time);\r\n item.updatePictureStyle();\r\n item.updateTimeText();\r\n return item;\r\n });\r\n })\r\n );\r\n }\r\n\r\n // 置入筆記\r\n copyNoteToTeamObserver(case_base: string, note_id: string, team_ids: string[], overwrite: boolean): Observable {\r\n const data = {\r\n case_type: CaseTypeId.Judgment,\r\n note_id_list: [note_id],\r\n team_id_list: team_ids,\r\n confirm_overwrite: overwrite\r\n };\r\n return this.service.post(`${case_base}/copy_note_to_team`, data);\r\n }\r\n\r\n\r\n\r\n\r\n // 更新爭點連結摘要\r\n // updateIssueSummaryLinkIdObserver(case_id: string, issue_id_link: { [issue_id: string]: string }): Observable {\r\n // const request = {\r\n // case_id: case_id,\r\n // issue_id_link: issue_id_link,\r\n // // issue_id: issue_id,\r\n // // summary_id: summary_id\r\n // };\r\n // return this.service.post('judgment/issue_link_summary', request);\r\n // }\r\n\r\n\r\n\r\n /** 更新案件標籤 */\r\n updateNoteCaseTagListObserver(note_id: string, list: CaseTag[], team_id?: string): Observable {\r\n const request: CaseTagUpdateRequest = new CaseTagUpdateRequest();\r\n request.list = list;\r\n if (team_id) {\r\n request.team_note_id = note_id;\r\n request.team_id = team_id;\r\n } else {\r\n request.note_id = note_id;\r\n }\r\n return this.service.post('judgment/case_tag_update', request);\r\n }\r\n resortCaseTag(list: JudgmentCase[]): void {\r\n list.forEach(n => {\r\n if (n.case_tag_list && n.case_tag_list.length) {\r\n n.case_tag_list.sort((a, b) => a.sn - b.sn);\r\n }\r\n });\r\n }\r\n\r\n /** 更新筆記類別、項目 */\r\n getNoteClassifyRequest(note_id: string, category: Category, subcategory: Subcategory): NoteClassifyRequest {\r\n const request: NoteClassifyRequest = {\r\n note_id: note_id,\r\n category: category,\r\n subcategory: subcategory,\r\n } as NoteClassifyRequest;\r\n\r\n return request;\r\n }\r\n getUpdateNoteClassifyObserver(request: NoteClassifyRequest): Observable {\r\n return this.service.post('judgment/note_classify', request);\r\n }\r\n updateNoteClassifyObserver(request: NoteClassifyRequest): Observable {\r\n return this.getUpdateNoteClassifyObserver(request);\r\n }\r\n\r\n\r\n /** 刪除筆記 */\r\n getDeleteNoteObserver(note_id: string, case_id: string): Observable {\r\n const postData: any = {\r\n note_id: note_id,\r\n case_id: case_id\r\n };\r\n return this.service.post('judgment/note_delete', postData);\r\n }\r\n deleteNoteObserver(note_id: string, case_id: string): Observable {\r\n return this.getDeleteNoteObserver(note_id, case_id);\r\n }\r\n\r\n\r\n /** 命名筆記 */\r\n getRenameNoteObserver(note_id: string, name: string, name2: string): Observable {\r\n const request: NoteRenameRequest = {\r\n note_id: note_id,\r\n name: name,\r\n name2: name2,\r\n } as NoteRenameRequest;\r\n\r\n return this.service.post('judgment/note_rename', request);\r\n }\r\n renameNoteObserver(note_id: string, name: string, name2: string): Observable {\r\n return this.getRenameNoteObserver(note_id, name, name2);\r\n }\r\n\r\n\r\n /** 類別更新 */\r\n getAddCategoryObserver(category: Category): Observable {\r\n const request: CategoryAddRequest = {\r\n category: category\r\n };\r\n\r\n return this.service.post('judgment/category_add', request);\r\n }\r\n getEditCategoryObserver(old_category_text: string, new_category: Category): Observable {\r\n const request: CategoryEditRequest = {\r\n old_category_text: old_category_text,\r\n new_category: new_category,\r\n };\r\n\r\n return this.service.post('judgment/category_edit', request);\r\n }\r\n getDeleteCategoryObserver(text: string): Observable {\r\n const request: CategoryDeleteRequest = {\r\n category_text: text\r\n };\r\n\r\n return this.service.post('judgment/category_delete', request);\r\n }\r\n getOrderCategoryObserver(list: CategoryOrderRequestData[]): Observable {\r\n const request: CategoryOrderRequest = {\r\n order_list: list\r\n };\r\n\r\n return this.service.post('judgment/category_order', request);\r\n }\r\n\r\n addCategoryObserver(category: Category): Observable {\r\n return this.getAddCategoryObserver(category);\r\n }\r\n editCategoryObserver(old_category: string, new_category: Category): Observable {\r\n return this.getEditCategoryObserver(old_category, new_category);\r\n }\r\n deleteCategoryObserver(text: string): Observable {\r\n return this.getDeleteCategoryObserver(text);\r\n }\r\n orderCategoryObserver(list: CategoryOrderRequestData[]): Observable {\r\n return this.getOrderCategoryObserver(list);\r\n }\r\n\r\n\r\n /** 項目更新 */\r\n getAddSubcategoryObserver(subcategory: Subcategory): Observable {\r\n const request: SubcategoryAddRequest = {\r\n subcategory: subcategory\r\n };\r\n\r\n return this.service.post('judgment/subcategory_add', request);\r\n }\r\n getEditSubcategoryObserver(category_text: string, old_subcategory_text: string, new_subcategory: Subcategory): Observable {\r\n const request: SubcategoryEditRequest = {\r\n category_text: category_text,\r\n old_subcategory_text: old_subcategory_text,\r\n new_subcategory: new_subcategory,\r\n };\r\n\r\n return this.service.post('judgment/subcategory_edit', request);\r\n }\r\n getDeleteSubcategoryObserver(category_text: string, text: string): Observable {\r\n const request: SubcategoryDeleteRequest = {\r\n category_text: category_text,\r\n subcategory_text: text\r\n };\r\n\r\n return this.service.post('judgment/subcategory_delete', request);\r\n }\r\n getOrderSubcategoryObserver(list: SubcategoryOrderRequestData[]): Observable {\r\n const request: SubcategoryOrderRequest = {\r\n order_list: list\r\n };\r\n\r\n return this.service.post('judgment/subcategory_order', request);\r\n }\r\n\r\n addSubcategoryObserver(subcategory: Subcategory): Observable {\r\n return this.getAddSubcategoryObserver(subcategory);\r\n }\r\n editSubcategoryObserver(category_text: string, old_subcategory_text: string, new_subcategory: Subcategory): Observable {\r\n return this.getEditSubcategoryObserver(category_text, old_subcategory_text, new_subcategory);\r\n }\r\n deleteSubcategoryObserver(category_text: string, text: string): Observable {\r\n return this.getDeleteSubcategoryObserver(category_text, text);\r\n }\r\n orderSubcategoryObserver(list: SubcategoryOrderRequestData[]): Observable {\r\n return this.getOrderSubcategoryObserver(list);\r\n }\r\n\r\n\r\n\r\n /** 案由提示 */\r\n getSuggestionCaseReasonObserver(keyword: string, type: JudgmentType): Observable {\r\n return this.service.get('judgment/suggest_reason?keyword=' + keyword + '&type=' + type);\r\n }\r\n getSuggestionNoteTitleObserver(keyword: string): Observable {\r\n return this.service.get('judgment/suggest_note_title?keyword=' + keyword);\r\n }\r\n getSuggestionCaseTagObserver(keyword: string): Observable {\r\n return this.service.get('judgment/suggest_case_tag?keyword=' + keyword);\r\n }\r\n getSuggestionSummaryTagObserver(keyword: string): Observable {\r\n return this.service.get('judgment/suggest_summary_tag?keyword=' + keyword);\r\n }\r\n\r\n\r\n\r\n\r\n /** 計數法院搜尋數量*/\r\n getSearchCourtCountProObserver(condition: JudgmentSearchCondition): Observable {\r\n return this.service.post('judgment/search_court_count', condition);\r\n }\r\n searchCourtCountProObserver(condition: JudgmentSearchCondition): Observable {\r\n return this.getSearchCourtCountProObserver(condition);\r\n }\r\n\r\n /** 計數法院搜尋數量 1 個*/\r\n getSearchCourtCountOneObserver(condition: JudgmentSearchCondition): Observable {\r\n return this.service.post('judgment/search_court_count_one', condition);\r\n }\r\n searchCourtCountOneObserver(condition: JudgmentSearchCondition): Observable {\r\n return this.getSearchCourtCountOneObserver(condition);\r\n }\r\n searchCourtCountMultiObserver(condition: JudgmentSearchCondition): Observable {\r\n return this.service.post('judgment/search_court_count', condition);\r\n }\r\n\r\n\r\n /** 專業檢索 */\r\n getSearchProOneObserver(condition: JudgmentSearchCondition): Observable {\r\n return this.service.post('judgment/search_pro_one', condition);\r\n }\r\n searchProOneObserver(condition: JudgmentSearchCondition): Observable {\r\n return this.getSearchProOneObserver(condition);\r\n }\r\n\r\n /** 簡易檢索 */\r\n // getSearchSimpleOneObserver(condition: JudgmentSearchCondition): Observable {\r\n // return this.service.post('judgment/search_simple_one', condition);\r\n // }\r\n // searchSimpleOneObserver(condition: JudgmentSearchCondition): Observable {\r\n // return this.getSearchSimpleOneObserver(condition);\r\n // }\r\n\r\n getSearchSimpleListObserver(condition: JudgmentSearchCondition): Observable {\r\n return this.service.post('judgment/search_simple_list', condition);\r\n }\r\n searchSimpleListObserver(condition: JudgmentSearchCondition): Observable {\r\n return this.getSearchSimpleListObserver(condition);\r\n }\r\n\r\n\r\n getNoteDataSearchResultObserver(search_keywords: SearcherKeyword[], case_id: string): Observable {\r\n return this.service.post('judgment/search_result_pro_note?case_id=' + case_id, search_keywords);\r\n }\r\n getNoteDataStorageObserver(case_id: string): Observable {\r\n return this.service.get('judgment/storage_note?case_id=' + case_id);\r\n }\r\n\r\n\r\n\r\n\r\n /** 更新指定筆記 */\r\n updateNoteDataStorage(case_id: string, callback: () => void = null): void {\r\n if (this.storageNoteList) {\r\n const noteIndex = this.storageNoteList.findIndex(v => v.case_id === case_id);\r\n if (noteIndex > -1) {\r\n this.getNoteDataStorageObserver(case_id)\r\n .subscribe((note: JudgmentCase) => {\r\n // const _note = Serializable.extendObjectFromResponseObject(new JudgmentCase(), note);\r\n const sourceNote = this.storageNoteList[noteIndex];\r\n note.sn = sourceNote.sn;\r\n Serializable.extendObjectFromResponseObject(sourceNote, note);\r\n // 更新爭點清單\r\n if (sourceNote.issue_list) {\r\n sourceNote.issue_list = sourceNote.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n // this.noteList.list[noteIndex] = note;\r\n // this.personalStorageJudgmentNoteListResponseHandler(this.noteList);\r\n });\r\n }\r\n }\r\n }\r\n /** 用類別更新筆記清單 */\r\n updateNoteDataStorageByCategory(category: string): void {\r\n if (this.storageNoteList) {\r\n this.storageNoteList.forEach((n, i) => {\r\n if (n.category && n.category.text === category) {\r\n // console.log('update note -category:', n.judgment_id);\r\n this.getNoteDataStorageObserver(n.case_id)\r\n .subscribe((note: JudgmentCase) => {\r\n // const _note = Serializable.extendObjectFromResponseObject(new JudgmentCase(), note);\r\n const sourceNote = this.storageNoteList[i];\r\n note.sn = sourceNote.sn;\r\n Serializable.extendObjectFromResponseObject(sourceNote, note);\r\n // 更新爭點清單\r\n if (sourceNote.issue_list) {\r\n sourceNote.issue_list = sourceNote.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n }\r\n // this.noteList.list[i] = _note;\r\n // this.personalStorageJudgmentNoteListResponseHandler(this.noteList);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n updateNoteDataStorageBySubcategory(category: string, subcategory: string): void {\r\n if (this.storageNoteList) {\r\n this.storageNoteList.forEach((n, i) => {\r\n if (n.category && n.category.text === category\r\n && n.subcategory && n.subcategory.text === subcategory) {\r\n // console.log('update note -subcategory:', n.judgment_id);\r\n this.getNoteDataStorageObserver(n.case_id)\r\n .subscribe((note: JudgmentCase) => {\r\n const sourceNote = this.storageNoteList[i];\r\n Serializable.extendObjectFromResponseObject(sourceNote, note);\r\n // 更新爭點清單\r\n if (sourceNote.issue_list) {\r\n sourceNote.issue_list = sourceNote.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n }\r\n // console.log('rev new note data ', n.judgment_id, note);\r\n // const sourceNote = this.storageNoteList[i];\r\n // note.sn = sourceNote.sn;\r\n // this.storageNoteList[i] = note;\r\n // this.personalStorageJudgmentNoteListResponseHandler(this.noteList);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n getCaseTagObserver(case_id: string): Observable {\r\n return this.service.get('judgment/case_tag?case_id=' + case_id);\r\n }\r\n /** 排除指定連線ID外,廣播給其他連線,更新清單 */\r\n broadcastCategoryUpdateObserver(ex_connection_id: string): Observable {\r\n const data = {\r\n ex_connection_id: ex_connection_id\r\n };\r\n return this.service.post('judgment/category_broadcast_update', data);\r\n }\r\n /** 排除指定連線ID,廣播給其他連線,更新項目清單 */\r\n broadcastSubcategoryUpdateObserver(ex_connection_id: string): Observable {\r\n const data = {\r\n ex_connection_id: ex_connection_id\r\n };\r\n return this.service.post('judgment/subcategory_broadcast_update', data);\r\n }\r\n\r\n\r\n /** 摘要編輯更新 */\r\n updateSummaryObserver(case_id: string, summarySave: SummarySave): Observable {\r\n return this.service.post('judgment/summary?case_id=' + case_id, summarySave);\r\n }\r\n addSummaryObserver(case_id: string, summarySave: SummarySave): Observable {\r\n return this.service.post('judgment/summary_add?case_id=' + case_id, summarySave);\r\n }\r\n deleteSummaryObserver(request: SummaryDeleteRequest): Observable {\r\n // const request = {\r\n // case_id: case_id,\r\n // summary_id_list: summary_id_list\r\n // };\r\n return this.service.post('judgment/summary_delete', request);\r\n }\r\n updateSummaryListOrderObserver(request: SummaryListOrderRequest): Observable {\r\n return this.service.post('judgment/summary_list_order', request);\r\n }\r\n\r\n\r\n checkInObserver(case_id: string, status: number): Observable {\r\n return this.service.post('judgment/check_in', {\r\n case_id: case_id,\r\n status: status\r\n });\r\n }\r\n checkInIndictmentObserver(case_id: string, status: number): Observable {\r\n return this.service.post('indictment/check_in', {\r\n case_id: case_id,\r\n status: status\r\n });\r\n }\r\n getCheckInDataCaseObserver(case_id: string, count_past_day: number = 0): Observable {\r\n return this.service.get('judgment/check_in_data_case?case_id=' + case_id + '&count_past_days=' + count_past_day);\r\n }\r\n getCheckInDataIndictmentCaseObserver(case_id: string, count_past_day: number = 0): Observable {\r\n return this.service.get('indictment/check_in_data_case?case_id=' + case_id + '&count_past_days=' + count_past_day);\r\n }\r\n\r\n\r\n // 請求範例案件\r\n requestSampleNoteJudgment(): Observable {\r\n return this.service.post('judgment/request_sample_note', {});\r\n }\r\n\r\n // 下載筆記\r\n downloadNoteFromTeam(\r\n team_id: string,\r\n team_note_id: string,\r\n notify_id: string,\r\n force: boolean\r\n ): Observable {\r\n return this.service.post(`judgment/download_note_from_team`, {\r\n team_id: team_id,\r\n team_note_id: team_note_id,\r\n notify_id: notify_id,\r\n force: force\r\n });\r\n }\r\n}\r\n","export enum NoteSummaryListType {\r\n Bookmark = 0,\r\n Summary = 1,\r\n}\r\n","export enum SummaryTypeId {\r\n WriterSummary = 0, // 筆者 = 0,\r\n PlaintiffSummary = 1, // 原告 = 1,\r\n DefendantSummary = 2, // 被告 = 2,\r\n AppellantSummary = 3, // 上訴人 = 3,\r\n AppelleeSummary = 4, // 被上訴人 = 4,\r\n PetitionerSummary = 5, // 聲請人 = 5,\r\n ResistSummary = 6, // 抗告人 = 6,\r\n ResistAgainSummary = 7, // 再抗告人 = 7,\r\n JudgeSummary = 8, // 審判長 = 8,\r\n OriginalSummary = 9, // 原審 = 9,\r\n PublicProsecutorSummary = 10, // 公訴人 = 10,\r\n ComplainantSummary = 11, // 告訴人 = 11,\r\n PrivateProsecutorSummary = 12, // 自訴人 = 12,\r\n WitnessSummary = 13, // 證人 = 13,\r\n ExpertWitnessSummary = 14, // 鑑定人 = 14,\r\n ParticipantSummary = 15, // 參加人 = 15,\r\n IssueSummary = 16, // 爭點 = 16,\r\n FactSummary = 17, // 事實 = 17,\r\n EvidenceSummary = 18, // 證據 = 18,\r\n LawSummary = 19, // 法條 = 19,\r\n CompetentAuthoritySummary = 20, // 主管機關 = 20,\r\n SampleSummary = 21, // 例稿 = 21,\r\n ProfessorSummary = 22, // 教授 = 22\r\n StudentSummary = 23, // 學生 = 23\r\n GeneralSummary = 24, // 通說 = 24\r\n PracticeSummary = 25, // 實務 = 25\r\n GlossarySummary = 26, // 名詞 = 26\r\n HelpSummary = 27, // 求救 = 27\r\n ExamSummary = 28, // 考點 = 28\r\n ReviseSummary = 29, // 修正 = 29\r\n CaseSummary = 30, // 案例 = 30\r\n All = 31, // 全部 = 31\r\n}\r\n","import { JudicialInterpretCase } from './judicial-interpret-case';\r\nimport { JudicialInterpretCase as JudicialInterpretCase2 } from \"projects/lwlib/src/judicial-interpret/judicial-interpret-case\";\r\n\r\nexport class JudicialInterpretCaseList {\r\n type_count: { [key: string]: number };\r\n edit_time: Date | string;\r\n count: number;\r\n page_index: number;\r\n list: JudicialInterpretCase[];\r\n}\r\nexport class JudicialInterpretCaseList2 {\r\n type_count: { [key: string]: number };\r\n edit_time: Date | string;\r\n count: number;\r\n page_index: number;\r\n list: JudicialInterpretCase2[];\r\n}\r\n","import { JudicialInterpretProperty } from './judicial-interpret-property.enum';\r\nimport { Issue } from '../judgment/issue';\r\nimport { CaseTag } from '../judgment/case-tag';\r\nimport { SummaryTypeItem } from '../judgment/summary-type-item';\r\nimport { ShareInfo } from '../judgment/share-info';\r\nimport { JudicialInterpretCaseData } from './judicial-interpret-case-data';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { JudicialInterpretCaseType } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-case-type.enum';\r\nimport { JudicialInterpretType } from './judicial-interpret-type.enum';\r\nimport { CourtId } from 'projects/lwlib/src/case-type/court-id.enum';\r\nimport { PropertyId } from 'projects/lwlib/src/case-type/property-id.enum';\r\nimport { CourtTypeId } from 'projects/lwlib/src/case-type/court-type-id.enum';\r\nimport { CaseTypeId } from 'projects/lwlib/src/case-type/case-type-id.enum';\r\nimport { LawRuleCaseRelate } from '../law-rule/law-rule-case-relate';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { JudicialInterpretService } from './judicial-interpret.service';\r\nimport { CheckInDataJudgmentCase } from 'projects/lwlib/src/check-in/check-in-data-judgment-case';\r\nimport { CheckInJudgment } from 'projects/lwlib/src/check-in/check-in-judgment';\r\nimport { CheckInLawArticle } from 'projects/lwlib/src/check-in/check-in-law-article';\r\nimport { TemplateRef } from '@angular/core';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\nimport { JudicialInterpretCourtId } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-court-id.enum';\r\n\r\n\r\n/** @deprecated */\r\nexport class JudicialInterpretCase {\r\n judicialInterpretService: JudicialInterpretService;\r\n\r\n\r\n // list\r\n sn: number;\r\n /** 檢索條件種類分類名稱 */\r\n case_type_name: string;\r\n\r\n // case basic\r\n case_id: string;\r\n\r\n /** 法院ID */\r\n court_id: JudicialInterpretCourtId;\r\n get courtIdString() { return JudicialInterpretCourtId[this.court_id]; }\r\n\r\n /** 原司法院種類 */\r\n type: JudicialInterpretType;\r\n get typeString(): string { return JudicialInterpretType[this.type]; }\r\n\r\n /** 檢索條件種類 */\r\n case_type: JudicialInterpretCaseType;\r\n get caseTypeString(): string { return JudicialInterpretCaseType[this.case_type]; }\r\n\r\n /** 屬性 */\r\n property: JudicialInterpretProperty;\r\n get propertyString(): string { return JudicialInterpretProperty[this.property]; }\r\n data: {\r\n overwrite_property: string,\r\n append_property: string\r\n };\r\n\r\n case_data: JudicialInterpretCaseData;\r\n \r\n case_content: string[][];\r\n /** 憲法法庭,原案件內容用 */\r\n case_content_source: string[][];\r\n files: string[][];\r\n\r\n /** 廢止案件 */\r\n is_repeal: boolean;\r\n /** 停止適用案件 */\r\n is_stop: boolean;\r\n\r\n /** 法院名稱 */\r\n court: string;\r\n /** 案號:年, 字, 號 */\r\n case_number: string[];\r\n /** 日期 */\r\n judg_date: number[];\r\n\r\n\r\n\r\n // search result\r\n preview_html: string;\r\n fulltext: string;\r\n relate_law_rule_list: LawRuleCaseRelate[];\r\n get relate_law_rule_name_list() {\r\n return this.relate_law_rule_list.map(r => {\r\n return {\r\n name: r.name,\r\n list: r.list.map(rs => rs[1])\r\n };\r\n });\r\n }\r\n\r\n // note simple\r\n note_id: string;\r\n // category: Category;\r\n // subcategory: Subcategory;\r\n /** 類別名稱 */\r\n category_text: string;\r\n /** 類別 */\r\n get category(): Category {\r\n return this.category_text ?\r\n this.judicialInterpretService.categoryDict[this.category_text] :\r\n Category.unCategory;\r\n }\r\n /** 項目名稱 */\r\n subcategory_text: string;\r\n get subcategory_key(): string { return this.category_text + '-' + this.subcategory_text; }\r\n /** 項目 */\r\n get subcategory(): Subcategory {\r\n return this.category_text && this.subcategory_text ?\r\n this.judicialInterpretService.subcategoryDict[this.subcategory_key] :\r\n Subcategory.unSubcategory;\r\n }\r\n file_subject: string;\r\n file_subject2: string;\r\n\r\n // note full\r\n issue_list: Issue[];\r\n case_tag_list: CaseTag[];\r\n summary: SummarySave[];\r\n summary_type_item_list: SummaryTypeItem[];\r\n edit_date: number;\r\n comment: string;\r\n share_info: ShareInfo;\r\n note_open_time: number;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n check_in_data: CheckInDataJudgmentCase;\r\n checkIn: CheckInJudgment;\r\n checkInButtonId: string;\r\n get checkInButtonElement(): HTMLElement { return document.getElementById(this.checkInMenuId); }\r\n checkInMenuId: string;\r\n get checkInMenuElement(): HTMLElement { return document.getElementById(this.checkInMenuId); }\r\n\r\n showCheckInMenu: boolean = false;\r\n onCheckInMenuShow: () => void;\r\n onCheckInMenuHide: () => void;\r\n registeCheckInMenuClickEvent: (ev: MouseEvent) => void;\r\n checkInTotalCount: number = 0;\r\n checkInStatusClassName: string = '';\r\n get checkInTodayChecked(): boolean {\r\n if (this.checkIn) {\r\n return this.checkIn.today_checked;\r\n }\r\n return true;\r\n }\r\n onOpenCheckInDetailDataPopup: () => void;\r\n\r\n\r\n\r\n putin_team_count: number = 0;\r\n\r\n\r\n\r\n\r\n\r\n\r\n static create(data: any): JudicialInterpretCase {\r\n return Serializable.extendObjectFromResponseObject(\r\n new JudicialInterpretCase(), data\r\n );\r\n }\r\n\r\n\r\n // case basic\r\n get case_reason(): string { return this.case_data.reason ? this.case_data.reason : ''; }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n toCourtId(): CourtId {\r\n return CourtId[this.courtIdString];\r\n }\r\n toPropertyId(): PropertyId {\r\n return PropertyId['JudicialInterpret_' + this.propertyString];\r\n }\r\n toCourtTypeId(): CourtTypeId {\r\n return CourtTypeId[this.caseTypeString];\r\n }\r\n toCaseTypeId(): CaseTypeId {\r\n return CaseTypeId.JudicialInterpret;\r\n }\r\n\r\n\r\n toggleShowCheckInMenu(): void {\r\n this.showCheckInMenu = !this.showCheckInMenu;\r\n if (this.showCheckInMenu) {\r\n this.onCheckInMenuShow();\r\n } else {\r\n this.onCheckInMenuHide();\r\n }\r\n }\r\n checkInCase(status: number): void {\r\n setTimeout(() => {\r\n this.checkInTotalCount++;\r\n this.checkInStatusClassName = CheckInLawArticle.statusClassNameDict[status] || '';\r\n this.checkIn.today_checked = true;\r\n this.checkIn.total_count++;\r\n // this.showCheckInMenu = true;\r\n }, 1);\r\n\r\n this.checkIn.onCheckIn(status);\r\n }\r\n}\r\n","import { JudicialInterpretCourtId } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-court-id.enum';\r\nimport { JudicialInterpretCaseType } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-case-type.enum';\r\n\r\nexport class JudicialInterpretCourtCount {\r\n court_id: JudicialInterpretCourtId;\r\n count: number;\r\n case_type: JudicialInterpretCaseType;\r\n // level: string;\r\n get courtIdString() { return JudicialInterpretCourtId[this.court_id]; }\r\n get caseTypeString() { return JudicialInterpretCaseType[this.case_type]; }\r\n counting: boolean;\r\n finish: boolean;\r\n\r\n static create(case_type: JudicialInterpretCaseType, court_id: JudicialInterpretCourtId): JudicialInterpretCourtCount {\r\n const cc = new JudicialInterpretCourtCount();\r\n cc.court_id = court_id;\r\n cc.case_type = case_type;\r\n cc.counting = false;\r\n cc.finish = false;\r\n cc.count = -1;\r\n\r\n return cc;\r\n }\r\n}\r\n","export enum JudicialInterpretPropertyIcon {\r\n Unified = 's11.png', //統字\r\n Solve = 's12.png', //解字\r\n Yuan = 's20.png', //院字\r\n YuanSolve = 's13.png', //院解字\r\n Explain = 's14.png', //釋字\r\n Reject = 's19.png', //不受理\r\n Precedent = 's15.png', //判例\r\n Judgment = 's8.png', //判決\r\n JudgmentSeuperme = 's8.png', //最高法院判決\r\n Reference = 's16.png', //價值裁判\r\n Resolution = 's17.png', //決議\r\n Discipline = 's18.png', //公懲\r\n Seminar = 's21.png', //座談會\r\n}\r\n","export enum JudicialInterpretProperty {\r\n Unified = 0, // 統字\r\n Solve = 1, // 解字\r\n Yuan = 2, // 院字\r\n YuanSolve = 3, // 院解字\r\n Explain = 4, // 釋字\r\n Reject = 5, // 不受理\r\n Precedent = 6, // 判例\r\n Judgment = 7, // 判決\r\n JudgmentSeuperme = 8, // 最高法院判決\r\n Reference = 9, // 價值裁判\r\n Resolution = 10, // 決議\r\n Discipline = 11, // 公懲\r\n Seminar = 12, // 座談會\r\n Grand = 13, // 大法庭\r\n Execute = 14, // 行政函釋\r\n XF38 = 15, // 憲法判決\r\n XF39 = 16, // 實體裁定\r\n XF40 = 17, // 程序裁定\r\n}\r\n","export enum JudicialInterpretType {\r\n Seminar = 0,\r\n Resolution = 1,\r\n FeaturedJudgmentGist = 2,\r\n FeaturedJudgment = 3,\r\n JudgmentPrecedent = 4,\r\n BigJudgeReject = 5,\r\n InterpretBigJudge = 6,\r\n InterpretCollege = 7,\r\n Grand = 8,\r\n Execute = 9,\r\n XF = 10,\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, Observable, of, empty, Subscription } from 'rxjs';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { map, flatMap, tap } from 'rxjs/operators';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { DataUpdateResult } from 'projects/lwlib/src/data-update-result';\r\nimport { CategoryAddRequest } from '../judgment/category-add-request';\r\nimport { CategoryEditRequest } from '../judgment/category-edit-request';\r\nimport { CategoryDeleteRequest } from '../judgment/category-delete-request';\r\nimport { CategoryOrderRequestData } from '../judgment/category-order-request-data';\r\nimport { CategoryOrderRequest } from '../judgment/category-order-request';\r\nimport { SubcategoryAddRequest } from '../judgment/subcategory-add-request';\r\nimport { SubcategoryEditRequest } from '../judgment/subcategory-edit-request';\r\nimport { SubcategoryDeleteRequest } from '../judgment/subcategory-delete-request';\r\nimport { SubcategoryOrderRequestData } from 'projects/lwlib/src/edit-category-popup/subcategory-order-request-data';\r\nimport { SubcategoryOrderRequest } from '../judgment/subcategory-order-request';\r\nimport { JudicialInterpretCaseList, JudicialInterpretCaseList2 } from './judicial-interpret-case-list';\r\nimport { JudicialInterpretCase } from './judicial-interpret-case';\r\nimport { Issue } from '../judgment/issue';\r\nimport { NoteRenameRequest } from '../judgment/note-rename-request';\r\nimport { CommentEditRequest } from 'projects/lwlib/src/comment-popup/comment-edit-request';\r\nimport { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { CaseTagUpdateRequest } from '../judgment/case-tag-update-request';\r\nimport { CaseTag } from '../judgment/case-tag';\r\nimport { IssueAddRequest } from '../judgment/issue-add-request';\r\nimport { IssueEditRequest } from '../judgment/issue-edit-request';\r\nimport { IssueOrderRequest } from '../judgment/issue-order-request';\r\nimport { IssueDeleteRequest } from '../judgment/issue-delete-request';\r\nimport { NoteClassifyRequest } from '../judgment/note-classify-request';\r\nimport { JudicialInterpretCondition } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-condition';\r\nimport { JudicialInterpretCourtCount } from './judicial-interpret-court-count';\r\nimport { SearcherKeyword } from 'projects/lwlib/src/keyword-searcher/searcher-keyword';\r\nimport { CategoryList } from 'projects/lwlib/src/category/category-list';\r\nimport { SubcategoryList } from 'projects/lwlib/src/category/subcategory-list';\r\nimport { Category } from 'projects/lwlib/src/category/category';\r\nimport { Subcategory } from 'projects/lwlib/src/category/subcategory';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\nimport { SummaryDeleteRequest } from 'projects/lwlib/src/summary-list/summary-delete-request';\r\nimport { SummaryListOrderRequest } from 'projects/lwlib/src/summary-list/summary-list-order-request';\r\nimport { JudicialInterpretCaseType } from '../../child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-case-type.enum';\r\nimport { CheckInDataJudgmentCase } from 'projects/lwlib/src/check-in/check-in-data-judgment-case';\r\nimport { FilterCondition } from '../filter-condition';\r\nimport { NotePutInTeam } from 'projects/lwlib/src/team/note-put-in-team';\r\nimport { CaseTypeId } from 'projects/lwlib/src/case-type/case-type-id.enum';\r\nimport { SaveResultStatusId } from 'projects/lwlib/src/save-count-limit-popup/save-result-status.enum';\r\nimport { JudicialInterpretCase as JudicialInterpretCase2 } from \"projects/lwlib/src/judicial-interpret/judicial-interpret-case\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JudicialInterpretService {\r\n filterCondition: FilterCondition = new FilterCondition();\r\n\r\n // private _categoryList: CategoryList;\r\n // private _subcategoryList: SubcategoryList;\r\n\r\n categoryList: Category[] = [];\r\n subcategoryList: Subcategory[] = [];\r\n\r\n /** key = category.text */\r\n categoryDict: { [key: string]: Category } = {};\r\n /** key = subcategory.category+'-'+subcategory.text */\r\n subcategoryDict: { [key: string]: Subcategory } = {};\r\n\r\n storageNoteTotalCount: number;\r\n storagePageIndex: number;\r\n storageNoteList: JudicialInterpretCase[];\r\n storageNoteList2: JudicialInterpretCase2[];\r\n storageNoteList$: Subject = new Subject();\r\n\r\n categoryList$: Subject = new Subject();\r\n subcategoryList$: Subject = new Subject();\r\n noteList$: Subject = new Subject();\r\n\r\n // // noteList: JudicialInterpretCaseList;\r\n // private _noteList: JudicialInterpretCaseList;\r\n // get noteList(): JudicialInterpretCaseList { return this._noteList; }\r\n // set noteList(value: JudicialInterpretCaseList) { this._noteList = value; }\r\n\r\n // categoryList$: Subject = new Subject();\r\n // subcategoryList$: Subject = new Subject();\r\n // noteList$: Subject = new Subject();\r\n\r\n constructor(\r\n private service: AppService,\r\n ) {\r\n // this.categoryList$.subscribe(r => {\r\n // this._categoryList = r;\r\n // this.categoryList = r;\r\n // });\r\n // this.subcategoryList$.subscribe(r => {\r\n // this._subcategoryList = r;\r\n // this.subcategoryList = r;\r\n // });\r\n // this.noteList$.subscribe(r => {\r\n // this.noteList = r;\r\n // });\r\n }\r\n\r\n\r\n\r\n // 取類別清單\r\n getCategoryListObserver(): Observable {\r\n return this.service.get('judicial_interpret/category_list')\r\n .pipe(\r\n map(list => {\r\n return list.list.map(v => {\r\n const mapedItem: Category =\r\n Serializable.extendObjectFromResponseObject(new Category(), v);\r\n return mapedItem;\r\n });\r\n })\r\n );\r\n }\r\n pullCategoryListObserver(): Observable {\r\n return this.getCategoryListObserver()\r\n .pipe(\r\n tap(list => {\r\n this.categoryList = list;\r\n this.categoryDict = {};\r\n list.forEach(v => {\r\n this.categoryDict[v.key] = v;\r\n });\r\n console.log(this.categoryDict);\r\n })\r\n );\r\n }\r\n\r\n // 取項目清單\r\n getSubcategoryListObserver(): Observable {\r\n return this.service.get('judicial_interpret/subcategory_list')\r\n .pipe(\r\n map(list => {\r\n return list.list.map(v => {\r\n const mapedItem: Subcategory =\r\n Serializable.extendObjectFromResponseObject(new Subcategory(), v);\r\n return mapedItem;\r\n });\r\n })\r\n );\r\n }\r\n pullSubcategoryListObserver(): Observable {\r\n return this.getSubcategoryListObserver()\r\n .pipe(\r\n tap(list => {\r\n this.subcategoryList = list;\r\n this.subcategoryDict = {};\r\n list.forEach(v => {\r\n this.subcategoryDict[v.key] = v;\r\n });\r\n })\r\n );\r\n }\r\n\r\n /** 關鍵字提示 */\r\n getSuggestionNoteTitleObserver(keyword: string): Observable {\r\n return this.service.get('judicial_interpret/suggest_note_title?keyword=' + keyword);\r\n }\r\n getSuggestionCaseTagObserver(keyword: string): Observable {\r\n return this.service.get('judicial_interpret/suggest_case_tag?keyword=' + keyword);\r\n }\r\n getSuggestionSummaryTagObserver(keyword: string): Observable {\r\n return this.service.get('judicial_interpret/suggest_summary_tag?keyword=' + keyword);\r\n }\r\n getSuggestionReasonObserver(keyword: string, caseType: JudicialInterpretCaseType): Observable {\r\n return this.service.get('judicial_interpret/suggest_reason?keyword=' + keyword + '&type=' + caseType);\r\n }\r\n\r\n\r\n // 取筆記清單\r\n getStorageNoteListObserver(filterCondition: FilterCondition): Observable {\r\n return this.service.post('judicial_interpret/personal_storage_full_list', filterCondition.toPostData())\r\n .pipe(\r\n tap(jcl => {\r\n const convertedList = jcl.list.map(n => {\r\n return Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), n);\r\n });\r\n convertedList.forEach((n: JudicialInterpretCase) => {\r\n n.judicialInterpretService = this;\r\n });\r\n jcl.list = convertedList;\r\n })\r\n );\r\n }\r\n pullStorageNoteListObserver(filterCondition: FilterCondition): Observable {\r\n return this.getStorageNoteListObserver(filterCondition)\r\n .pipe(\r\n tap(jcl => {\r\n // 重新設定筆記class\r\n jcl.list = jcl.list.map(n => Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), n));\r\n // 重新連結各子清單\r\n jcl.list.forEach(n => {\r\n // 重新排序標籤清單\r\n if (n.case_tag_list) { n.case_tag_list.sort((a, b) => a.sn - b.sn); }\r\n // 重新設定爭點\r\n n.issue_list = n.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n });\r\n }),\r\n tap(jcl => {\r\n this.storageNoteTotalCount = jcl.count;\r\n this.storageNoteList = jcl.list;\r\n this.storagePageIndex = filterCondition.pageIndex;\r\n this.storageNoteList$.next(jcl.list);\r\n // console.log(jcl.list);\r\n })\r\n );\r\n }\r\n pullStorageNoteListObserver2(filterCondition: FilterCondition): Observable {\r\n return this.service.post('judicial_interpret/personal_storage_full_list', filterCondition.toPostData())\r\n .pipe(\r\n tap(jcl => {\r\n // 重新設定筆記class\r\n {\r\n const convertedList = jcl.list.map(n => {\r\n return Serializable.extendObjectFromResponseObject(new JudicialInterpretCase2(), n);\r\n });\r\n convertedList.forEach((n: JudicialInterpretCase2) => {\r\n\r\n });\r\n jcl.list = convertedList;\r\n }\r\n\r\n // 重新連結各子清單\r\n jcl.list.forEach(note => {\r\n // 重新排序標籤清單\r\n if (note.case_tag_list) {\r\n note.case_tag_list.sort((a, b) => a.sn - b.sn);\r\n }\r\n // 重新設定爭點\r\n note.issue_list = note.issue_list\r\n .map(issue => Serializable.extend(new Issue(), issue));\r\n\r\n note.updateCategoryIconStyle();\r\n note.updateSubcategoryIconStyle();\r\n note.updateAnswerIssueList();\r\n note.updateSummaryItemCalssName();\r\n note.updateSaveDateString();\r\n note.updateCheckin();\r\n });\r\n\r\n\r\n this.storageNoteTotalCount = jcl.count;\r\n this.storageNoteList2 = jcl.list;\r\n this.storagePageIndex = filterCondition.pageIndex;\r\n }),\r\n );\r\n }\r\n\r\n\r\n\r\n // 取筆記置入訊息\r\n getNotePutinTeamObserver(note_id: string): Observable {\r\n return this.service.get('judicial_interpret/check_note_in_team?note_id=' + note_id)\r\n .pipe(\r\n map((list: NotePutInTeam[]) => {\r\n return list.map(v => {\r\n const item: NotePutInTeam = Serializable.extendObjectFromResponseObject(new NotePutInTeam(), v);\r\n item.copy_time = new Date(item.copy_time);\r\n item.updatePictureStyle();\r\n item.updateTimeText();\r\n return item;\r\n });\r\n })\r\n );\r\n }\r\n\r\n // 置入筆記\r\n copyNoteToTeamObserver(note_id: string, team_ids: string[], overwrite: boolean): Observable {\r\n const data = {\r\n case_type: CaseTypeId.JudicialInterpret,\r\n note_id_list: [note_id],\r\n team_id_list: team_ids,\r\n confirm_overwrite: overwrite\r\n };\r\n return this.service.post(`judicial_interpret/copy_note_to_team`, data);\r\n }\r\n\r\n\r\n\r\n\r\n // 取摘要清單\r\n getSummaryListObserver(case_id: string): Observable {\r\n return this.service.get('judicial_interpret/summary?case_id=' + case_id);\r\n }\r\n /** 摘要編輯更新 */\r\n updateSummaryObserver(case_id: string, summarySave: SummarySave): Observable {\r\n return this.service.post('judicial_interpret/summary?case_id=' + case_id, summarySave);\r\n }\r\n addSummaryObserver(case_id: string, summarySave: SummarySave): Observable {\r\n return this.service.post('judicial_interpret/summary_add?case_id=' + case_id, summarySave);\r\n }\r\n deleteSummaryObserver(request: SummaryDeleteRequest): Observable {\r\n return this.service.post('judicial_interpret/summary_delete', request);\r\n }\r\n updateSummaryListOrderObserver(request: SummaryListOrderRequest): Observable {\r\n return this.service.post('judicial_interpret/summary_list_order', request);\r\n }\r\n\r\n\r\n\r\n // /** 抓取類別清單 */\r\n // /** 取類別清單 */\r\n // getCategoryListObserver(): Observable {\r\n // if (this._categoryList == null) {\r\n // return this.pullCategoryListObserver();\r\n // } else {\r\n // return of(this._categoryList);\r\n // }\r\n // }\r\n // /** 從S拉取類別清單 */\r\n // pullCategoryListObserver(): Observable {\r\n // return this.getPullCategoryObserver()\r\n // .pipe(\r\n // // map(v => v && v.count > 0 ? v : empty()),\r\n // flatMap(v => this.checkAndUpdateCategoryListSnOrder(v)),\r\n // map(v => v === empty() ? null : v),\r\n // tap(v => { this.updateCategoryListLocal(v); }),\r\n // );\r\n // }\r\n // /** 抓取更新類別清單 */\r\n // pullCategoryList(): Subscription {\r\n // return this.pullCategoryListObserver().subscribe();\r\n // }\r\n // private updateCategoryListLocal(list: CategoryList): void {\r\n // if (list != null) {\r\n // this._categoryList = list;\r\n // this.categoryList = list;\r\n // this.categoryList$.next(list);\r\n // }\r\n // }\r\n // /** 取得從類別清單S取值Observer */\r\n // private getPullCategoryObserver(): Observable {\r\n // return this.service.get('judicial_interpret/category_list?time=' + this.getCategoryListTime());\r\n // }\r\n // /** 取清單時間 */\r\n // private getCategoryListTime(): number {\r\n // let time = 1;\r\n // if (this._categoryList\r\n // && this._categoryList.edit_time) {\r\n // time = this._categoryList.edit_time.getTime();\r\n // }\r\n // return time;\r\n // }\r\n // /** 檢查序號排序並更新 */\r\n // private checkAndUpdateCategoryListSnOrder(categoryList: any): Observable {\r\n // if (categoryList === empty() || categoryList == null) {\r\n // return of(null);\r\n // } else {\r\n // // 檢查序號排序\r\n // const convertedList = this.pullCategoryListMiddleware(categoryList as CategoryList);\r\n // const sourceSnText = convertedList.list.map(v => v.sn).join();\r\n // CategoryList.reindexCategoryListSn(convertedList.list);\r\n // const newSnText = convertedList.list.map(v => v.sn).join();\r\n\r\n // if (sourceSnText === newSnText) {\r\n // return of(convertedList);\r\n // } else {\r\n\r\n // // 更新序號,重新取序號\r\n // const orderCategoryRequestData = CategoryList.getCategoryListOrderRequestData((convertedList as CategoryList).list);\r\n // return this.orderCategoryObserver(orderCategoryRequestData)\r\n // .pipe(map(v => convertedList));\r\n // }\r\n // }\r\n // }\r\n // /** 轉換類別清單給C用 */\r\n // private pullCategoryListMiddleware(r: CategoryList): CategoryList {\r\n // const cl = new CategoryList();\r\n // cl.count = r.count;\r\n // cl.edit_time = new Date(Date.parse(r.edit_time.toString()));\r\n // cl.list = r.list.map(c => {\r\n // return Serializable.extendObjectFromResponseObject(new Category(), c);\r\n // });\r\n // cl.list.sort((a, b) => a.sn - b.sn);\r\n\r\n // return cl;\r\n // }\r\n\r\n\r\n // /** 抓取項目清單 */\r\n // /** 取項目清單 */\r\n // getSubcategoryListObserver(): Observable {\r\n // if (this._subcategoryList == null) {\r\n // return this.pullSubcategoryListObserver();\r\n // } else {\r\n // return of(this._subcategoryList);\r\n // }\r\n // }\r\n // /** 從S拉取項目清單 */\r\n // pullSubcategoryListObserver(): Observable {\r\n // return this.getPullSubcategoryListObserver()\r\n // .pipe(\r\n // // map(v => v && v.count > 0 ? v : empty()),\r\n // flatMap(v => this.checkAndUpdateSubcategoryListSnOrder(v)),\r\n // map(v => v === empty() ? null : v),\r\n // tap(v => { this.updateSubcategoryListLocal(v); }),\r\n // );\r\n // }\r\n // /** 抓取更新項目清單 */\r\n // pullSubcategoryList(): Subscription {\r\n // return this.pullSubcategoryListObserver().subscribe();\r\n // }\r\n // private updateSubcategoryListLocal(list: SubcategoryList): void {\r\n // if (list != null) {\r\n // this._subcategoryList = list;\r\n // this.subcategoryList = list;\r\n // this.subcategoryList$.next(list);\r\n // }\r\n // }\r\n // /** 取得從項目清單S取值Observer */\r\n // private getPullSubcategoryListObserver(): Observable {\r\n // return this.service.get('judicial_interpret/subcategory_list?time=' + this.getSubcategoryListTime());\r\n // }\r\n // /** 取清單時間 */\r\n // private getSubcategoryListTime(): number {\r\n // let time = 1;\r\n // if (this.subcategoryList\r\n // && this.subcategoryList.edit_time) {\r\n // time = this.subcategoryList.edit_time.getTime();\r\n // }\r\n // return time;\r\n // }\r\n // /** 檢查序號排序並更新 */\r\n // private checkAndUpdateSubcategoryListSnOrder(subcategoryList: any): Observable {\r\n // if (subcategoryList === empty() || subcategoryList == null) {\r\n // return of(null);\r\n // } else {\r\n // // 檢查序號排序\r\n // const convertedList = this.pullSubcategoryListMiddleware(subcategoryList as SubcategoryList);\r\n // const sourceSnText = convertedList.list.map(v => v.sn).join();\r\n // SubcategoryList.reindexSubcategoryListSn(convertedList.list);\r\n // const newSnText = convertedList.list.map(v => v.sn).join();\r\n\r\n // if (sourceSnText === newSnText) {\r\n // return of(convertedList);\r\n // } else {\r\n\r\n // // 更新序號,重新取序號\r\n // const orderSubcategoryRequestData = SubcategoryList.getSubcategoryListOrderRequestData((convertedList as SubcategoryList).list);\r\n // return this.orderSubcategoryObserver(orderSubcategoryRequestData)\r\n // .pipe(map(v => convertedList));\r\n // }\r\n // }\r\n // }\r\n\r\n // /** 轉換項目清單給C用 */\r\n // private pullSubcategoryListMiddleware(r: SubcategoryList): SubcategoryList {\r\n // const cl = new SubcategoryList();\r\n // cl.count = r.count;\r\n // cl.edit_time = new Date(Date.parse(r.edit_time.toString()));\r\n // cl.list = r.list.map(c => {\r\n // return Serializable.extendObjectFromResponseObject(new Subcategory(), c);\r\n // });\r\n // cl.list.sort((a, b) => a.sn - b.sn);\r\n\r\n // return cl;\r\n // }\r\n // /** 取筆記清單 */\r\n // getPersonalStorageJudicialInterpretFullNoteListObserver(filterCondition: FilterCondition): Observable {\r\n // return this.service.post('judicial_interpret/personal_storage_full_list', filterCondition.toPostData());\r\n // }\r\n // pullPersonalStorageJudicialInterpretFullNoteListObserver(filterCondition: FilterCondition): Observable {\r\n // return this.getPersonalStorageJudicialInterpretFullNoteListObserver(filterCondition)\r\n // .pipe(tap(r => {\r\n // this.personalStorageJudgmentNoteListResponseHandler(r);\r\n // }));\r\n // }\r\n // pullPersonalStorageJudicialInterpretFullNoteList(filterCondition: FilterCondition): Subscription {\r\n // return this.getPersonalStorageJudicialInterpretFullNoteListObserver(filterCondition)\r\n // .subscribe(r => {\r\n // this.personalStorageJudgmentNoteListResponseHandler(r);\r\n // });\r\n // }\r\n // personalStorageJudgmentNoteListResponseHandler(list: JudicialInterpretCaseList): void {\r\n // console.log('pulled storage list ', list);\r\n\r\n // list.list = list.list.map(v => this.recreateCase(v));\r\n\r\n // this.relinkListIssue(list.list);\r\n // this.relinkListCategory(list.list);\r\n // this.relinkListSubcategory(list.list);\r\n // this.resortCaseTag(list.list);\r\n\r\n // this.noteList$.next(list);\r\n // }\r\n\r\n // recreateCase(_case: JudicialInterpretCase): JudicialInterpretCase {\r\n // return Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), _case);\r\n // }\r\n // relinkListIssue(list: JudicialInterpretCase[]): void {\r\n // list.forEach(a => {\r\n // if (a.issue_list.length) {\r\n // const tempIssueList = [];\r\n // a.issue_list.forEach(b => {\r\n // tempIssueList.push(\r\n // // new Issue().fromResponseObject(b))\r\n // Serializable.extendObjectFromResponseObject(\r\n // new Issue(), b\r\n // )\r\n // );\r\n // });\r\n // a.issue_list = tempIssueList;\r\n // }\r\n // });\r\n // }\r\n\r\n // findCategoryOrSource(raw: Category): Category {\r\n // return this._categoryList.list.find(b => b && b.text === raw.text) || raw;\r\n // }\r\n // relinkListCategory(list: JudicialInterpretCase[]): void {\r\n // list.forEach(a => {\r\n // if (a.category) {\r\n // a.category = this.findCategoryOrSource(a.category);\r\n // }\r\n // });\r\n // }\r\n\r\n // findSubcategoryOrSource(raw: Subcategory): Subcategory {\r\n // return this.subcategoryList.list\r\n // .find(b => b.category === raw.category && b.text === raw.text)\r\n // || raw;\r\n // }\r\n // relinkListSubcategory(list: JudicialInterpretCase[]): void {\r\n // list.forEach(a => {\r\n // if (a.subcategory) {\r\n // a.subcategory = this.findSubcategoryOrSource(a.subcategory);\r\n // }\r\n // });\r\n // }\r\n\r\n /** 更新關鍵標籤 */\r\n updateNoteCaseTagListObserver(note_id: string, list: CaseTag[], team_id?: string): Observable {\r\n const request: CaseTagUpdateRequest = new CaseTagUpdateRequest();\r\n request.list = list;\r\n if (team_id) {\r\n request.team_note_id = note_id;\r\n request.team_id = team_id;\r\n } else {\r\n request.note_id = note_id;\r\n }\r\n return this.service.post('judicial_interpret/case_tag_update', request);\r\n }\r\n resortCaseTag(list: JudicialInterpretCase[]): void {\r\n list.forEach(n => {\r\n if (n.case_tag_list && n.case_tag_list.length) {\r\n n.case_tag_list.sort((a, b) => a.sn - b.sn);\r\n }\r\n });\r\n }\r\n\r\n /** 更新筆記類別、項目 */\r\n getNoteClassifyRequest(note_id: string, category: Category, subcategory: Subcategory): NoteClassifyRequest {\r\n const request: NoteClassifyRequest = {\r\n note_id: note_id,\r\n category: category,\r\n subcategory: subcategory,\r\n } as NoteClassifyRequest;\r\n\r\n return request;\r\n }\r\n getUpdateNoteClassifyObserver(request: NoteClassifyRequest): Observable {\r\n return this.service.post('judicial_interpret/note_classify', request);\r\n }\r\n updateNoteClassifyObserver(request: NoteClassifyRequest): Observable {\r\n return this.getUpdateNoteClassifyObserver(request);\r\n }\r\n\r\n\r\n /** 刪除筆記 */\r\n getDeleteNoteObserver(judicial_interpret_note_id: string, judicial_interpret_id: string): Observable {\r\n const postData = {\r\n judicial_interpret_note_id: judicial_interpret_note_id,\r\n judicial_interpret_id: judicial_interpret_id\r\n };\r\n return this.service.post('judicial_interpret/note_delete', postData);\r\n }\r\n deleteNoteObserver(judicial_interpret_note_id: string, judicial_interpret_id: string): Observable {\r\n return this.getDeleteNoteObserver(judicial_interpret_note_id, judicial_interpret_id);\r\n }\r\n\r\n\r\n /** 命名筆記、重新命名 */\r\n getRenameNoteObserver(request: NoteRenameRequest): Observable {\r\n return this.service.post('judicial_interpret/note_rename', request);\r\n }\r\n renameNoteObserver(judicial_interpret_note_id: string, name: string, name2: string): Observable {\r\n const request: NoteRenameRequest = {\r\n note_id: judicial_interpret_note_id,\r\n name: name,\r\n name2: name2\r\n } as NoteRenameRequest;\r\n return this.getRenameNoteObserver(request);\r\n }\r\n\r\n\r\n /** 類別更新 */\r\n getAddCategoryObserver(category: Category): Observable {\r\n const request: CategoryAddRequest = {\r\n category: category\r\n };\r\n\r\n return this.service.post('judicial_interpret/category_add', request);\r\n }\r\n getEditCategoryObserver(old_category_text: string, new_category: Category): Observable {\r\n const request: CategoryEditRequest = {\r\n old_category_text: old_category_text,\r\n new_category: new_category,\r\n };\r\n\r\n return this.service.post('judicial_interpret/category_edit', request);\r\n }\r\n getDeleteCategoryObserver(text: string): Observable {\r\n const request: CategoryDeleteRequest = {\r\n category_text: text\r\n };\r\n\r\n return this.service.post('judicial_interpret/category_delete', request);\r\n }\r\n getOrderCategoryObserver(list: CategoryOrderRequestData[]): Observable {\r\n const request: CategoryOrderRequest = {\r\n order_list: list\r\n };\r\n\r\n return this.service.post('judicial_interpret/category_order', request);\r\n }\r\n\r\n addCategoryObserver(category: Category): Observable {\r\n return this.getAddCategoryObserver(category);\r\n }\r\n editCategoryObserver(old_category: string, new_category: Category): Observable {\r\n return this.getEditCategoryObserver(old_category, new_category);\r\n }\r\n deleteCategoryObserver(text: string): Observable {\r\n return this.getDeleteCategoryObserver(text);\r\n }\r\n orderCategoryObserver(list: CategoryOrderRequestData[]): Observable {\r\n return this.getOrderCategoryObserver(list);\r\n }\r\n\r\n\r\n /** 項目更新 */\r\n getAddSubcategoryObserver(subcategory: Subcategory): Observable {\r\n const request: SubcategoryAddRequest = {\r\n subcategory: subcategory\r\n };\r\n\r\n return this.service.post('judicial_interpret/subcategory_add', request);\r\n }\r\n getEditSubcategoryObserver(category_text: string, old_subcategory_text: string, new_subcategory: Subcategory): Observable {\r\n const request: SubcategoryEditRequest = {\r\n category_text: category_text,\r\n old_subcategory_text: old_subcategory_text,\r\n new_subcategory: new_subcategory,\r\n };\r\n\r\n return this.service.post('judicial_interpret/subcategory_edit', request);\r\n }\r\n getDeleteSubcategoryObserver(category_text: string, text: string): Observable {\r\n const request: SubcategoryDeleteRequest = {\r\n category_text: category_text,\r\n subcategory_text: text\r\n };\r\n\r\n return this.service.post('judicial_interpret/subcategory_delete', request);\r\n }\r\n getOrderSubcategoryObserver(list: SubcategoryOrderRequestData[]): Observable {\r\n const request: SubcategoryOrderRequest = {\r\n order_list: list\r\n };\r\n\r\n return this.service.post('judicial_interpret/subcategory_order', request);\r\n }\r\n\r\n addSubcategoryObserver(subcategory: Subcategory): Observable {\r\n return this.getAddSubcategoryObserver(subcategory);\r\n }\r\n editSubcategoryObserver(category_text: string, old_subcategory_text: string, new_subcategory: Subcategory): Observable {\r\n return this.getEditSubcategoryObserver(category_text, old_subcategory_text, new_subcategory);\r\n }\r\n deleteSubcategoryObserver(category_text: string, text: string): Observable {\r\n return this.getDeleteSubcategoryObserver(category_text, text);\r\n }\r\n orderSubcategoryObserver(list: SubcategoryOrderRequestData[]): Observable {\r\n return this.getOrderSubcategoryObserver(list);\r\n }\r\n\r\n\r\n\r\n\r\n // getPushCaseTagObserver(request: CaseTagUpdateRequest): Observable {\r\n // return this.service.post('judicial_interpret/case_tag_update', request);\r\n // }\r\n getSearchCaseTagObserver(keyword: string): Observable {\r\n return this.service.get('judicial_interpret/case_tag_search?keyword=' + keyword);\r\n }\r\n\r\n\r\n\r\n // /** 更新隨意備註 */\r\n // getPushCommentObserver(request: CommentEditRequest): Observable {\r\n // return this.service.post('judicial_interpret/comment_edit', request);\r\n // }\r\n // pushCommentObserver(judicial_interpret_id: string, comment: string): Observable {\r\n // const request: CommentEditRequest = {\r\n // type: CaseType.JudicialInterpret,\r\n // case_id: judicial_interpret_id,\r\n // comment: comment\r\n // };\r\n // return this.getPushCommentObserver(request);\r\n // }\r\n\r\n\r\n // /** 爭點編輯 */\r\n // getAddIssueObserver(request: IssueAddRequest): Observable {\r\n // return this.service.post('judicial_interpret/issue_add', request);\r\n // }\r\n // getUpdateIssueObserver(request: IssueEditRequest): Observable {\r\n // return this.service.post('judicial_interpret/issue_edit', request);\r\n // }\r\n // getOrderIssueObserver(request: IssueOrderRequest): Observable {\r\n // return this.service.post('judicial_interpret/issue_order', request);\r\n // }\r\n // getDeleteIssueObserver(request: IssueDeleteRequest): Observable {\r\n // return this.service.post('judicial_interpret/issue_delete', request);\r\n // }\r\n\r\n\r\n /** 計數法院搜尋數量 1 個*/\r\n getSearchCourtCountOneObserver(condition: JudicialInterpretCondition): Observable {\r\n return this.service.post('judicial_interpret/search_court_count_one', condition);\r\n }\r\n searchCourtCountOneObserver(condition: JudicialInterpretCondition): Observable {\r\n return this.getSearchCourtCountOneObserver(condition)\r\n .pipe(\r\n map(countCourtResult => Serializable.extendObjectFromResponseObject(new JudicialInterpretCourtCount(), countCourtResult))\r\n );\r\n }\r\n\r\n /** 簡易清單檢索 1 個*/\r\n // getSearchSimpleOneObserver(condition: JudicialInterpretCondition): Observable {\r\n // return this.service.post('judicial_interpret/search_simple_one', condition);\r\n // }\r\n // searchSimpleOneObserver(condition: JudicialInterpretCondition): Observable {\r\n // return this.getSearchSimpleOneObserver(condition)\r\n // .pipe(\r\n // map(v => Serializable.extendObjectFromResponseObject(new JudicialInterpretCaseList(), v))\r\n // );\r\n // }\r\n\r\n /** 簡易清單檢索 多個 */\r\n getSearchSimpleListObserver(condition: JudicialInterpretCondition): Observable {\r\n return this.service.post('judicial_interpret/search_simple_list', condition);\r\n }\r\n searchSimpleListObserver(condition: JudicialInterpretCondition): Observable {\r\n return this.getSearchSimpleListObserver(condition)\r\n .pipe(\r\n map(v => v.map(n => Serializable.extendObjectFromResponseObject(new JudicialInterpretCase(), n)))\r\n );\r\n }\r\n\r\n /** 專業清單檢索 */\r\n getSearchProOneObserver(condition: JudicialInterpretCondition): Observable {\r\n return this.service.post('judicial_interpret/search_pro_one', condition);\r\n }\r\n searchProOneObserver(condition: JudicialInterpretCondition): Observable {\r\n return this.getSearchProOneObserver(condition)\r\n .pipe(\r\n map(v => Serializable.extendObjectFromResponseObject(new JudicialInterpretCaseList(), v))\r\n );\r\n }\r\n\r\n\r\n getNoteDataSearchResultObserver(search_keywords: SearcherKeyword[], case_id: string): Observable {\r\n return this.service.post('judicial_interpret/search_result_pro_note?case_id=' + case_id, search_keywords);\r\n }\r\n getNoteDataStorageObserver(case_id: string): Observable {\r\n return this.service.get('judicial_interpret/storage_note?case_id=' + case_id);\r\n }\r\n /** 更新指定筆記 */\r\n updateNoteDataStorage(case_id: string, callback: () => void = null): void {\r\n if (this.storageNoteList) {\r\n const noteIndex = this.storageNoteList.findIndex(v => v.case_id === case_id);\r\n if (noteIndex > -1) {\r\n this.getNoteDataStorageObserver(case_id)\r\n .subscribe((note: JudicialInterpretCase) => {\r\n const sourceNote = this.storageNoteList[noteIndex];\r\n note.sn = sourceNote.sn;\r\n Serializable.extendObjectFromResponseObject(sourceNote, note);\r\n // 更新爭點清單\r\n if (sourceNote.issue_list) {\r\n sourceNote.issue_list = sourceNote.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n // const sourceNote = this.storageNoteList[noteIndex];\r\n // this.storageNoteList[noteIndex] = note;\r\n // this.personalStorageJudgmentNoteListResponseHandler(this.storageNoteList);\r\n });\r\n }\r\n }\r\n }\r\n /** 用類別更新筆記清單 */\r\n updateNoteDataStorageByCategory(category: string): void {\r\n // console.log('update note list -category', category, this.storageNoteList);\r\n if (this.storageNoteList) {\r\n this.storageNoteList.forEach((n, i) => {\r\n if (n.category && n.category.text === category) {\r\n // console.log('update note -category:', n.judicial_interpret_id);\r\n this.getNoteDataStorageObserver(n.case_id)\r\n .subscribe((note: JudicialInterpretCase) => {\r\n const sourceNote = this.storageNoteList[i];\r\n Serializable.extendObjectFromResponseObject(sourceNote, note);\r\n // 更新爭點清單\r\n if (sourceNote.issue_list) {\r\n sourceNote.issue_list = sourceNote.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n }\r\n // const sourceNote = this.storageNoteList[i];\r\n // note.sn = sourceNote.sn;\r\n // this.storageNoteList[i] = note;\r\n // this.personalStorageJudgmentNoteListResponseHandler(this.storageNoteList);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n updateNoteDataStorageBySubcategory(category: string, subcategory: string): void {\r\n // console.log('update note list -subcategory', category, subcategory, this.storageNoteList);\r\n if (this.storageNoteList) {\r\n this.storageNoteList.forEach((n, i) => {\r\n if (n.category && n.category.text === category\r\n && n.subcategory && n.subcategory.text === subcategory) {\r\n // console.log('update note -subcategory:', n.judicial_interpret_id);\r\n this.getNoteDataStorageObserver(n.case_id)\r\n .subscribe((note: JudicialInterpretCase) => {\r\n const sourceNote = this.storageNoteList[i];\r\n Serializable.extendObjectFromResponseObject(sourceNote, note);\r\n // 更新爭點清單\r\n if (sourceNote.issue_list) {\r\n sourceNote.issue_list = sourceNote.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n }\r\n // console.log('rev new note data ', n.judicial_interpret_id, note);\r\n // const sourceNote = this.storageNoteList[i];\r\n // note.sn = sourceNote.sn;\r\n // this.storageNoteList[i] = note;\r\n // this.personalStorageJudgmentNoteListResponseHandler(this.storageNoteList);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n getCaseTagObserver(case_id: string): Observable {\r\n return this.service.get('judicial_interpret/case_tag?case_id=' + case_id);\r\n }\r\n /** 排除指定連線ID外,廣播給其他連線,更新清單 */\r\n broadcastCategoryUpdateObserver(ex_connection_id: string): Observable {\r\n const data = {\r\n ex_connection_id: ex_connection_id\r\n };\r\n return this.service.post('judicial_interpret/category_broadcast_update', data);\r\n }\r\n /** */\r\n broadcastSubcategoryUpdateObserver(ex_connection_id: string): Observable {\r\n const data = {\r\n ex_connection_id: ex_connection_id\r\n };\r\n return this.service.post('judicial_interpret/subcategory_broadcast_update', data);\r\n }\r\n\r\n\r\n\r\n\r\n checkInObserver(case_id: string, status: number): Observable {\r\n return this.service.post('judicial_interpret/check_in', {\r\n case_id: case_id,\r\n status: status\r\n });\r\n }\r\n getCheckInDataCaseObserver(case_id: string, count_past_day: number = 0): Observable {\r\n return this.service.get('judicial_interpret/check_in_data_case?case_id=' + case_id + '&count_past_days=' + count_past_day);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // 請求範例案件\r\n requestSampleNoteJudicialInterpret(): Observable {\r\n return this.service.post('judicial_interpret/request_sample_note', {});\r\n }\r\n\r\n // 下載筆記\r\n downloadNoteFromTeam(\r\n team_id: string,\r\n team_note_id: string,\r\n notify_id: string,\r\n force: boolean\r\n ): Observable {\r\n return this.service.post(`judicial_interpret/download_note_from_team`, {\r\n team_id: team_id,\r\n team_note_id: team_note_id,\r\n notify_id: notify_id,\r\n force: force\r\n });\r\n }\r\n}\r\n","import { SummaryTypeItem } from '../judgment/summary-type-item';\r\nimport { LawLegislationSource } from 'projects/lwlib/src/law-rule/law-legislation-source';\r\nimport { LawSystemSource } from 'projects/lwlib/src/law-rule/law-system-source';\r\nimport { LawArticleSource } from 'projects/lwlib/src/law-rule/law-article-source';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\nimport { LawLegislationTime } from 'projects/lwlib/src/law-rule-evolution-time-editor-popup/law-legislation-time';\r\nimport { CheckInDataLawRuleArticle } from 'projects/lwlib/src/check-in/check-in-data-law-rule-article';\r\nimport { NoteSummaryListType } from '../judgment/note-summary-list-type';\r\nimport { BookmarkType } from '../judgment/bookmark-type';\r\nimport { SummaryTypeId } from '../judgment/summary-type-id.enum';\r\nimport { Tool } from 'projects/lwlib/src/tool/tool';\r\n\r\nexport class LawRuleCase {\r\n // list\r\n sn: number;\r\n\r\n // case basic\r\n law_rule_id: string;\r\n law_rule_name: string;\r\n law_article_count: number;\r\n /** 修正日 年/月/日 */\r\n modify_date: number[];\r\n modify_status: string;\r\n modifyDateString: string = '';\r\n /** 公佈日 年/月/日 */\r\n public_date: number[];\r\n public_status: string;\r\n law_source: number;\r\n law_rule_type: number;\r\n\r\n // case full\r\n law_legislation_list: LawLegislationSource[];\r\n law_system_list: LawSystemSource[];\r\n law_article_list: LawArticleSource[];\r\n law_legislation_time_list: LawLegislationTime[];\r\n\r\n // note basic\r\n law_rule_note_id: string;\r\n summary_type_item_list: SummaryTypeItem[];\r\n edit_date: number;\r\n comment: string;\r\n fast_bag: boolean;\r\n\r\n\r\n // note full\r\n // font_list\r\n summary_list: SummarySave[];\r\n summary: SummarySave[] = [];\r\n isGetSummary: boolean = false;\r\n\r\n checkInPastDay: number = 0;\r\n checkinDatas: CheckInDataLawRuleArticle[];\r\n check_in_statistics: { [key: number]: number };\r\n checkInPercentGreen: number = 0;\r\n\r\n // 更新.摘要class\r\n updateSummaryItemCalssName(): void {\r\n this.summary_type_item_list.forEach(s => {\r\n if (s.list_type === NoteSummaryListType.Bookmark) {\r\n s.className = Tool.convertText_CamelCaseToLowerDash(BookmarkType[s.list_type].toString());\r\n } else {\r\n s.className = Tool.convertText_CamelCaseToLowerDash(SummaryTypeId[s.item_type].toString());\r\n }\r\n });\r\n }\r\n // 更新.筆記清單用的學習紀錄\r\n updateCheckInPercentGreen(): void {\r\n const greenCount = this.check_in_statistics['1'] || 0;\r\n const p = Math.floor((greenCount / this.law_article_count) * 100);\r\n this.checkInPercentGreen = p;\r\n }\r\n // 更新修正日字串\r\n updateModifyDateString(): void {\r\n this.modifyDateString = this.modify_date[0]\r\n + '/' + this.modify_date[1].toString().padStart(2, '0')\r\n + '/' + this.modify_date[2].toString().padStart(2, '0')\r\n ;\r\n }\r\n\r\n}\r\n","export enum LawRuleType {\r\n Auto = 0,\r\n Current = 1,\r\n Repeal = 2,\r\n Stop = 3,\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LawRuleCaseList } from './law-rule-case-list';\r\nimport { Subject, Observable, Subscription, of, empty } from 'rxjs';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { tap, map, flatMap } from 'rxjs/operators';\r\nimport { FastBagLawRuleCollectRequest } from './fast-bag-law-rule-collect-request';\r\nimport { LawRuleFastBag } from 'projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag';\r\nimport { LawRuleFastBagOrderRequestData } from 'projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-order-request-data';\r\nimport { DataUpdateResult } from 'projects/lwlib/src/data-update-result';\r\nimport { LawRuleFastBagOrderRequest } from 'projects/lwlib/src/law-rule-fast-bag-popup/law-rule-fast-bag-order-request';\r\nimport { LawRuleCategory } from '../../child-content-law-rule-search/law-rule-category';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { LawRuleSubcategory } from '../../child-content-law-rule-search/law-rule-subcategory';\r\nimport { LawRuleCase } from './law-rule-case';\r\nimport { LawRuleExamIndex } from '../../child-content-law-rule-search/law-rule-exam-index';\r\nimport { LawRuleSearchFilterCondition } from '../../child-content-law-rule-search/law-rule-search-filter-condition';\r\nimport { LawRuleType } from './law-rule-type.enum';\r\nimport { LawRuleCount } from '../../child-content-law-rule-search/law-rule-count';\r\nimport { LawRuleSearchCondition } from '../../child-content-law-rule-search/law-rule-search-condition';\r\nimport { FilterCondition } from '../filter-condition';\r\nimport { SummarySave } from 'projects/lwlib/src/summary-list/summary-save';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LawRuleService {\r\n\r\n courtId_Status: { [key: string]: LawRuleType } = {\r\n LawRule_Now_Name: LawRuleType.Current,\r\n LawRule_Now_Fulltext: LawRuleType.Current,\r\n LawRule_Repeal_Name: LawRuleType.Repeal,\r\n LawRule_Repeal_Fulltext: LawRuleType.Repeal,\r\n LawRule_Stop_Name: LawRuleType.Stop,\r\n LawRule_Stop_Fulltext: LawRuleType.Stop,\r\n };\r\n statusIdNameDict: { [key: string]: string } = {\r\n NONE: '',\r\n Establish: '制定',\r\n Implement: '施行',\r\n Announce: '公布',\r\n Correction: '修正',\r\n FulltextCorrection: '全文修正',\r\n Expire: '期滿廢止',\r\n Repeal: '廢止',\r\n Stop: '停止適用',\r\n Effect: '生效',\r\n Delete: '刪除',\r\n Additional: '增訂',\r\n };\r\n\r\n filterCondition: FilterCondition;\r\n noteList: LawRuleCaseList;\r\n fastBag: LawRuleFastBag;\r\n // categoryIndex: { [key: string]: { [key: string]: number } };\r\n categoryIndexList: LawRuleCategory[];\r\n examList: LawRuleExamIndex[];\r\n optionExamList: LawRuleExamIndex[];\r\n\r\n noteList$: Subject = new Subject();\r\n fastBag$: Subject = new Subject();\r\n\r\n constructor(\r\n private service: AppService,\r\n ) {\r\n this.noteList$.subscribe(r => {\r\n this.noteList = r;\r\n });\r\n }\r\n\r\n /** 抓筆記清單 */\r\n getPersonalStorageLawRuleFullNoteListObserver(filterCondition: FilterCondition): Observable {\r\n return this.service.post('law_rule/personal_storage_full_list', filterCondition.toPostData())\r\n .pipe(\r\n tap(r => {\r\n const list = r.list.map(v => Serializable.extend(new LawRuleCase(), v));\r\n list.forEach(v => {\r\n v.updateSummaryItemCalssName();\r\n v.updateCheckInPercentGreen();\r\n v.updateModifyDateString();\r\n });\r\n console.log(list);\r\n\r\n r.list = list;\r\n }),\r\n );\r\n }\r\n pullPersonalStorageLawRuleFullNoteList(filterCondition: FilterCondition): Subscription {\r\n return this.pullPersonalStorageLawRuleFullNoteListObserver(filterCondition)\r\n .subscribe(r => {\r\n this.personalStorageLawRuleFullNoteListHandler(r);\r\n });\r\n }\r\n pullPersonalStorageLawRuleFullNoteListObserver(filterCondition: FilterCondition): Observable {\r\n return this.getPersonalStorageLawRuleFullNoteListObserver(filterCondition)\r\n .pipe(\r\n tap(r => {\r\n this.personalStorageLawRuleFullNoteListHandler(r);\r\n })\r\n );\r\n }\r\n personalStorageLawRuleFullNoteListHandler(r: LawRuleCaseList): void {\r\n this.noteList$.next(r);\r\n }\r\n\r\n /** 取摘要清單 */\r\n getSummaryListObserver(law_rule_id: string): Observable {\r\n return this.service.get('law_rule/summary?law_rule_id=' + law_rule_id);\r\n }\r\n\r\n /** 刪除筆記 */\r\n getDeleteNoteObserver(law_rule_note_id: string, law_rule_id: string): Observable {\r\n const postData: any = {\r\n law_rule_note_id: law_rule_note_id,\r\n law_rule_id: law_rule_id\r\n };\r\n return this.service.post('law_rule/note_delete', postData);\r\n }\r\n deleteNoteObserver(law_rule_note_id: string, law_rule_id: string): Observable {\r\n return this.getDeleteNoteObserver(law_rule_note_id, law_rule_id);\r\n }\r\n\r\n /** 常用法規 */\r\n getFastBagLawRuleCollectObserver(law_rule_id: string, collect: boolean): Observable {\r\n const request: FastBagLawRuleCollectRequest = {\r\n law_rule_id: law_rule_id,\r\n collect: collect,\r\n };\r\n return this.service.post('law_rule/fast_bag', request);\r\n }\r\n fastBagLawRuleCollectObserver(law_rule_id: string, collect: boolean): Observable {\r\n return this.getFastBagLawRuleCollectObserver(law_rule_id, collect);\r\n }\r\n getFastBagObserver(): Observable {\r\n if (this.fastBag == null) {\r\n return this.getPullFastBagObserver();\r\n } else {\r\n return of(this.fastBag);\r\n }\r\n }\r\n pullFastBagObserver(): Observable {\r\n return this.getPullFastBagObserver()\r\n .pipe(\r\n flatMap(v => this.checkAndUpdateFastBagOrder(v)),\r\n map(v => v === empty() ? null : v),\r\n tap(v => { this.updateFastBagLocal(v); })\r\n );\r\n }\r\n private getPullFastBagObserver(): Observable {\r\n return this.service.get('law_rule/fast_bag');\r\n }\r\n private checkAndUpdateFastBagOrder(fastBag: any): Observable {\r\n if (fastBag === empty()) {\r\n return of(null);\r\n } else if ((fastBag as LawRuleFastBag).count === 0) {\r\n return of(fastBag);\r\n } else {\r\n // 檢查排序\r\n const fb = fastBag as LawRuleFastBag;\r\n const sourceSnText = fb.list.map((v) => v.sn).join();\r\n LawRuleFastBag.reindexListSn(fb.list);\r\n const newSnText = fb.list.map(v => v.sn).join();\r\n\r\n if (sourceSnText === newSnText) {\r\n return of(fastBag);\r\n } else {\r\n\r\n // 更新序號\r\n const orderRequestData = LawRuleFastBag.getOrderRequestData(fb.list);\r\n return this.orderFastBagObserver(orderRequestData)\r\n .pipe(map(v => fastBag));\r\n }\r\n }\r\n }\r\n private updateFastBagLocal(fastBag: LawRuleFastBag): void {\r\n if (fastBag != null) {\r\n this.fastBag = fastBag;\r\n this.fastBag$.next(fastBag);\r\n }\r\n }\r\n\r\n private getOrderFastBagObserver(list: LawRuleFastBagOrderRequestData[]): Observable {\r\n const request: LawRuleFastBagOrderRequest = {\r\n order_list: list\r\n };\r\n\r\n return this.service.post('law_rule/fast_bag_order', request);\r\n }\r\n orderFastBagObserver(list: LawRuleFastBagOrderRequestData[]): Observable {\r\n return this.getOrderFastBagObserver(list);\r\n }\r\n\r\n\r\n /** 法規目錄清單 */\r\n getCategoryIndex(): Observable {\r\n if (this.categoryIndexList) {\r\n return of(this.categoryIndexList);\r\n } else {\r\n return this.getCategoryIndexObserver()\r\n .pipe(\r\n map(index => {\r\n const categoryIndexList = [];\r\n Object.keys(index).forEach(categoryKey => {\r\n const category: LawRuleCategory = Serializable.extendObjectFromResponseObject(new LawRuleCategory(), {\r\n name: categoryKey,\r\n icon: '',\r\n subcategory: []\r\n });\r\n\r\n Object.keys(index[categoryKey]).forEach(subcategoryKey => {\r\n const subcategory: LawRuleSubcategory = {\r\n name: subcategoryKey,\r\n count: index[categoryKey][subcategoryKey],\r\n };\r\n category.subcategory.push(subcategory);\r\n });\r\n\r\n\r\n categoryIndexList.push(category);\r\n });\r\n\r\n return categoryIndexList;\r\n }),\r\n tap(indexList => {\r\n this.categoryIndexList = indexList;\r\n })\r\n );\r\n }\r\n }\r\n getCategoryIndexObserver(): Observable<{ [key: string]: { [key: string]: number } }> {\r\n return this.service.get<{ [key: string]: { [key: string]: number } }>('law_rule/category_index');\r\n }\r\n\r\n /** 法規考試目錄 */\r\n getExamIndex(): Observable<{ [key: string]: LawRuleExamIndex[] }> {\r\n if (this.examList) {\r\n return of({\r\n exam: this.examList,\r\n option_exam: this.optionExamList,\r\n });\r\n } else {\r\n return this.getExamIndexObserver()\r\n .pipe(\r\n map(index => {\r\n const extObj = Serializable.extendObjectFromResponseObject;\r\n index.exam = index.exam.map(v => extObj(new LawRuleExamIndex(), v));\r\n index.option_exam = index.option_exam.map(v => extObj(new LawRuleExamIndex(), v));\r\n // console.log(index);\r\n\r\n return index;\r\n }),\r\n tap(index => {\r\n this.examList = index.exam;\r\n this.optionExamList = index.option_exam;\r\n })\r\n );\r\n }\r\n }\r\n getExamIndexObserver(): Observable<{ [key: string]: LawRuleExamIndex[] }> {\r\n return this.service.get<{ [key: string]: LawRuleExamIndex[] }>('law_rule/exam_index');\r\n }\r\n\r\n\r\n /** 計數種類 */\r\n getCountLawRuleTypeObserver(condition: LawRuleSearchFilterCondition): Observable<{ [key in keyof typeof LawRuleType]: number }> {\r\n return this.service.post<{ [key in keyof typeof LawRuleType]: number }>('law_rule/count_type', condition);\r\n }\r\n countLawRuleTypeObserver(condition: LawRuleSearchFilterCondition): Observable<{ [key in keyof typeof LawRuleType]: number }> {\r\n return this.getCountLawRuleTypeObserver(condition);\r\n }\r\n\r\n /** 搜尋法規 */\r\n getSearchLawRuleObserver(condition: LawRuleSearchFilterCondition): Observable {\r\n return this.service.post('law_rule/search', condition);\r\n }\r\n searchLawRuleObserver(condition: LawRuleSearchFilterCondition): Observable {\r\n return this.getSearchLawRuleObserver(condition);\r\n }\r\n\r\n\r\n /** 法規名稱關鍵字提示 */\r\n getLawRuleNameSuggestionObserver(keyword: string): Observable {\r\n return this.service.get('law_rule/suggest?keyword=' + keyword);\r\n }\r\n\r\n\r\n\r\n\r\n /** 計數法規 */\r\n getSearchCountObserver(condition: LawRuleSearchCondition): Observable {\r\n return this.service.post('law_rule/search_law_rule_count', condition);\r\n }\r\n searchCountObserver(condition: LawRuleSearchCondition): Observable {\r\n return this.getSearchCountObserver(condition);\r\n }\r\n\r\n /** 搜尋指定條件法規 */\r\n getSearchLawRuleListObserver(condition: LawRuleSearchCondition): Observable {\r\n return this.service.post('law_rule/search_law_rule_list', condition);\r\n }\r\n searchLawRuleListObserver(condition: LawRuleSearchCondition): Observable {\r\n return this.getSearchLawRuleListObserver(condition);\r\n }\r\n\r\n\r\n getNoteDataStorageObserver(case_id: string): Observable {\r\n return this.service.get('law_rule/storage_note?case_id=' + case_id);\r\n }\r\n updateNoteDataStorageObserver(case_id: string): void {\r\n if (this.noteList) {\r\n // console.log(this.noteList);\r\n const noteIndex = this.noteList.list.findIndex(v => v.law_rule_id === case_id);\r\n if (noteIndex > -1) {\r\n this.getNoteDataStorageObserver(case_id)\r\n .subscribe((note: LawRuleCase) => {\r\n const sourceNote = this.noteList.list[noteIndex];\r\n note.sn = sourceNote.sn;\r\n this.noteList.list[noteIndex] = note;\r\n this.personalStorageLawRuleFullNoteListHandler(this.noteList);\r\n });\r\n }\r\n }\r\n }\r\n // getNoteDataObserver(note_id: string): Observable {\r\n // return this.service.get('law_rule/storage_note?note_id=' + note_id);\r\n // }\r\n\r\n\r\n\r\n\r\n getSuggestionNoteLawRuleObserver(keyword: string): Observable {\r\n return this.service.get('law_rule/suggest_note_law_rule?keyword=' + keyword);\r\n }\r\n getSuggestionSummaryTagObserver(keyword: string): Observable {\r\n return this.service.get('law_rule/suggest_summary_tag?keyword=' + keyword);\r\n }\r\n\r\n\r\n request_import_fav_law_rule(): Observable {\r\n return this.service.post('law_rule/request_import_fav_law_rule', {});\r\n }\r\n request_storage_note(): Observable {\r\n return this.service.post('law_rule/request_storage_note', {});\r\n }\r\n request_note_summary_sample(law_rule_id: string): Observable {\r\n return this.service.post('law_rule/request_note_summary_sample?law_rule_id=' + law_rule_id, {});\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Observable } from 'rxjs';\r\nimport { CommentEditRequest } from 'projects/lwlib/src/comment-popup/comment-edit-request';\r\nimport { CaseType } from 'projects/lwlib/src/personal-config-popup/personal-config-popup.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { JudgmentCase } from './child-content-storage-personal/judgment/judgment-case';\r\nimport { JudicialInterpretCase } from './child-content-storage-personal/judicial-interpret/judicial-interpret-case';\r\nimport { LawRuleCase } from './child-content-storage-personal/law-rule/law-rule-case';\r\nimport { CaseHelper } from 'projects/lwlib/src/case-helper';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommentService {\r\n\r\n private pusher: { [key in keyof typeof CaseType]: (request: CommentEditRequest) => Observable } = {\r\n Judgment: (r) => this.getJudgmentObserver(r),\r\n JudicialInterpret: (r) => this.getJudicialInterpretObserver(r),\r\n LawRule: (r) => this.getLawRuleObserver(r),\r\n Indictment: (r) => this.getIndictmentObserver(r),\r\n };\r\n\r\n constructor(\r\n private service: AppService,\r\n ) { }\r\n\r\n\r\n // pushCommentObserver(type: CaseType, note: JudgmentCase | JudicialInterpretCase | LawRuleCase, new_comment: string): Observable {\r\n // debugger;\r\n // let request: CommentEditRequest = {\r\n // type: type,\r\n // case_id: CaseHelper.getCaseIdFromNote(type, note),\r\n // comment: new_comment,\r\n // };\r\n // return this.pusher[CaseType[type]](request);\r\n // }\r\n\r\n pushCommentRequestObserver(request: CommentEditRequest): Observable {\r\n return this.pusher[CaseType[request.type]](request);\r\n }\r\n getJudgmentObserver(request: CommentEditRequest): Observable {\r\n return this.service.post('judgment/comment_edit', request);\r\n }\r\n getLawRuleObserver(request: CommentEditRequest): Observable {\r\n return this.service.post('law_rule/comment_edit', request);\r\n }\r\n getJudicialInterpretObserver(request: CommentEditRequest): Observable {\r\n return this.service.post('judicial_interpret/comment_edit', request);\r\n }\r\n getIndictmentObserver(request: CommentEditRequest): Observable {\r\n return this.service.post('indictment/comment_edit', request);\r\n }\r\n\r\n\r\n updateNoteCommentJudgmentObserver(judgment_id: string, comment: string, team_id?: string, team_note_id?: string): Observable {\r\n const request: CommentEditRequest = {} as CommentEditRequest;\r\n request.type = CaseType.Judgment;\r\n request.comment = comment;\r\n if (team_id) {\r\n request.team_id = team_id;\r\n request.team_note_id = team_note_id;\r\n } else {\r\n request.case_id = judgment_id;\r\n }\r\n return this.pusher[CaseType[request.type]](request);\r\n }\r\n updateNoteCommentLawRuleObserver(law_rule_id: string, comment: string, team_id?: string, team_note_id?: string): Observable {\r\n const request: CommentEditRequest = {} as CommentEditRequest;\r\n request.type = CaseType.LawRule;\r\n request.comment = comment;\r\n if (team_id) {\r\n request.team_id = team_id;\r\n request.team_note_id = team_note_id;\r\n } else {\r\n request.case_id = law_rule_id;\r\n }\r\n return this.pusher[CaseType[request.type]](request);\r\n }\r\n updateNoteCommentJudicialInterpretObserver(judicial_interpret_id: string, comment: string, team_id?: string, team_note_id?: string): Observable {\r\n const request: CommentEditRequest = {} as CommentEditRequest;\r\n request.type = CaseType.JudicialInterpret;\r\n request.comment = comment;\r\n if (team_id) {\r\n request.team_id = team_id;\r\n request.team_note_id = team_note_id;\r\n } else {\r\n request.case_id = judicial_interpret_id;\r\n }\r\n return this.pusher[CaseType[request.type]](request);\r\n }\r\n updateNoteCommentIndictmentObserver(case_id: string, comment: string, team_id?: string, team_note_id?: string): Observable {\r\n const request: CommentEditRequest = {} as CommentEditRequest;\r\n request.type = CaseType.Indictment;\r\n request.comment = comment;\r\n if (team_id) {\r\n request.team_id = team_id;\r\n request.team_note_id = team_note_id;\r\n } else {\r\n request.case_id = case_id;\r\n }\r\n return this.pusher[CaseType[request.type]](request);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Observable, BehaviorSubject, Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\n\r\nexport enum ChildContent {\r\n PersonalStorage = 0,\r\n Judgment = 1,\r\n LawRule = 2,\r\n JudicialInterpret = 3,\r\n CompleteSearch = 4,\r\n Management = 5,\r\n RecommendFriend = 6,\r\n MemberProfileManagement = 7,\r\n MyTeam = 8,\r\n News = 9,\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RootMainService {\r\n\r\n defaultChildContent: ChildContent = ChildContent.PersonalStorage;\r\n selectedChildContent: ChildContent;\r\n selectedChildContent$: Subject = new Subject();\r\n\r\n routeLinkName: { [key in keyof typeof ChildContent]: string } = {\r\n Judgment: 'judgment_search',\r\n JudicialInterpret: 'judicial_interpert_search',\r\n LawRule: 'law_rule_search',\r\n PersonalStorage: 'personal_storage',\r\n CompleteSearch: 'complete_search',\r\n Management: 'management',\r\n RecommendFriend: 'recommend_friend',\r\n MemberProfileManagement: 'member_profile_management',\r\n MyTeam: 'my_team',\r\n News: 'news'\r\n };\r\n\r\n\r\n constructor(\r\n private service: AppService,\r\n private router: Router,\r\n ) { }\r\n\r\n pullDefaultHomeObserver(): Observable {\r\n return this.service.get('user/default_home')\r\n .pipe(map((r) => {\r\n // console.log(r, ChildContent[r]);\r\n\r\n this.defaultChildContent = r;\r\n }));\r\n }\r\n\r\n selectChildContent(childContent: ChildContent): void {\r\n // const name = this.routeLinkName[ChildContent[childContent]];\r\n // this.router.navigate(['/' + name]);\r\n this.selectedChildContent$.next(childContent);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LogPageId } from 'projects/lwlib/src/log-page/log-page-id.enum';\r\nimport { NetService } from 'projects/lwlib/src/net.service';\r\nimport { PageName } from 'projects/lwlib/src/page-name';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { AppCommonStatic } from '../../app-common-static';\r\nimport { MemberSummarySearchResult } from './member-summary';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RootManagementService {\r\n constructor(\r\n private net: NetService\r\n ) { }\r\n\r\n\r\n /** 2020/01/01 00:00 */\r\n convertDateStringFormat1(jsonDateString: string): string {\r\n const tick = Date.parse(jsonDateString);\r\n if (tick > 0) {\r\n return AppCommonStatic.convertTimeTickToTimeText4(tick);\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n getLogDevice(ua: string): string {\r\n if (ua == null) {\r\n return '';\r\n }\r\n const lowua = ua.toLowerCase();\r\n\r\n // if (lowua.match(/^(android)/)) {\r\n // return '手機安卓';\r\n // }\r\n // if (lowua.match(/^(ios)/)) {\r\n // return '手機蘋果';\r\n // }\r\n // if (lowua.match(/^(windows)/)) {\r\n // return '桌面WIN';\r\n // }\r\n // if (lowua.match(/^(mac)/)) {\r\n // return '桌面MAC';\r\n // }\r\n\r\n // return '未知裝置';\r\n\r\n\r\n if (lowua.match(/^(android|ios)/)) {\r\n return 'mobile';\r\n }\r\n if (lowua.match(/^(windows|mac|chrome os)/)) {\r\n return 'desktop';\r\n }\r\n if (lowua.match((/^linux/))) {\r\n return 'tablet';\r\n }\r\n\r\n return 'unknow';\r\n }\r\n getPageLogData(log: any): string {\r\n if ([\r\n LogPageId.TeamAnnounce,\r\n LogPageId.TeamAddMember,\r\n LogPageId.TeamMember,\r\n LogPageId.TeamSharedStorage,\r\n LogPageId.TeamNoteJudgment,\r\n LogPageId.TeamNoteJudicialInterpret,\r\n LogPageId.TeamNoteIndictment,\r\n LogPageId.TeamStorageJudgment,\r\n LogPageId.TeamStorageJudicialInterpret,\r\n ].indexOf(log.page) > -1\r\n && log?.data?.team_name != null) {\r\n return `【${log.data.team_name}】`;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n convertPageLogs(logs: { time: string, page: number, ua: string }[]): string[][] {\r\n let _logs = [];\r\n if (logs != null && logs.length > 0) {\r\n _logs = logs;\r\n }\r\n return _logs.slice(0, 4)\r\n .map((log: any) => {\r\n return [\r\n this.convertDateStringFormat1(log.time),\r\n PageName[log.page],\r\n this.getLogDevice(log.ua),\r\n this.getPageLogData(log)\r\n ];\r\n });\r\n }\r\n\r\n searchMembers(condition: any): Observable {\r\n return this.net.postRaw(`management/members`, condition)\r\n .pipe(\r\n tap(result => {\r\n for (const member of result.list) {\r\n member.CPageLogs = this.convertPageLogs(member.PageLogs);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RootPasswordChangeService } from './root-password-change.service';\r\nimport { Router } from '@angular/router';\r\nimport { LoadingIconService } from 'projects/lwlib/src/loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\n\r\n@Component({\r\n selector: 'app-root-password-change',\r\n templateUrl: './root-password-change.component.html',\r\n styleUrls: ['./root-password-change.component.scss']\r\n})\r\nexport class RootPasswordChangeComponent implements OnInit {\r\n\r\n showPasswordInput1: boolean = false;\r\n showPasswordInput2: boolean = false;\r\n code: string = '';\r\n inputPassword1: string = '';\r\n inputPassword2: string = '';\r\n\r\n constructor(\r\n public appCommonService: AppCommonService,\r\n private router: Router,\r\n private rootPasswordChangeService: RootPasswordChangeService,\r\n private loadingIconService: LoadingIconService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n // console.log('RootPasswordChangeComponent init');\r\n if (this.rootPasswordChangeService.key == null) {\r\n this.router.navigate(['/']);\r\n } else {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.RequestPasswordChangeKey);\r\n }\r\n }\r\n\r\n checkPassword1(): boolean {\r\n if (this.inputPassword1.length < 6) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n checkPassword2(): boolean {\r\n if (this.inputPassword1 !== this.inputPassword2) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n disableConfirmButton(): boolean {\r\n return !this.checkPassword1() || !this.checkPassword2();\r\n }\r\n\r\n submit(): void {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.PasswordChange);\r\n this.rootPasswordChangeService.requestChangePasswordObserver(\r\n this.rootPasswordChangeService.key.key\r\n , this.code\r\n , this.inputPassword2\r\n )\r\n .subscribe({\r\n next: (result: boolean) => {\r\n if (result) {\r\n alert('密碼更新成功!');\r\n this.rootPasswordChangeService.key = null;\r\n this.router.navigate(['/']);\r\n } else {\r\n alert('密碼更新錯誤,請檢查輸入的驗證密碼、密碼是否都正確');\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.PasswordChange);\r\n }\r\n },\r\n error: () => {\r\n alert('密碼更新錯誤,請檢查輸入的驗證密碼、密碼是否都正確');\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.PasswordChange);\r\n // const timeString = this.appCommonService.convertTimeTickToTimeText1(this.rootPasswordChangeService.key.expire_time);\r\n // alert('密碼更新錯誤,請於 ' + timeString + ' 後重試。');\r\n // this.rootPasswordChangeService.key = null;\r\n // this.router.navigate(['/']);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
密碼更改
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
確定
\r\n \r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RootPasswordChangeComponent } from './root-password-change.component';\r\nimport { MaskFullScreenModule } from 'projects/lwlib/src/mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n ],\r\n declarations: [RootPasswordChangeComponent],\r\n exports: [RootPasswordChangeComponent]\r\n})\r\nexport class RootPasswordChangeModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ChangePasswordKey } from './change-password-key';\r\nimport { ChangePasswordRequest } from './change-password-request';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RootPasswordChangeService {\r\n\r\n key: ChangePasswordKey;\r\n\r\n constructor(\r\n private service: AppService\r\n ) { }\r\n\r\n private getChangePasswordKeyObserver(phone: string): Observable {\r\n const postData = {\r\n phone: phone\r\n };\r\n\r\n return this.service.post('user/request_change_password_ticket', postData);\r\n }\r\n requestChangePasswordKeyObserver(phone: string): Observable {\r\n return this.getChangePasswordKeyObserver(phone);\r\n }\r\n\r\n\r\n private getChangePasswordObserver(key: string, code: string, password: string): Observable {\r\n const postData: ChangePasswordRequest = {\r\n key: key,\r\n code: code,\r\n password: password\r\n };\r\n\r\n return this.service.post('user/change_password', postData);\r\n }\r\n requestChangePasswordObserver(key: string, code: string, password: string): Observable {\r\n return this.getChangePasswordObserver(key, code, password);\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n enableNotification: true,\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { faFacebookF, faFacebook, faTwitter, faLinkedinIn, faGooglePlusG, faPinterestP, faRedditAlien, faTumblr, faWhatsapp, faVk, faFacebookMessenger, faTelegramPlane, faMix, faXing, faLine } from '@fortawesome/free-brands-svg-icons';\r\nimport { faCommentAlt, faBook, faEnvelope, faCheck, faPrint, faExclamation, faLink, faEllipsisH, faMinus, faLightbulb, faCoffee, faInfo } from '@fortawesome/free-solid-svg-icons';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\n// import './icons';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n window.console.log = function () { };\r\n}\r\n\r\nconst icons = [\r\n faFacebookF, faFacebook, faTwitter, faLinkedinIn, faGooglePlusG, faPinterestP, faRedditAlien, faTumblr,\r\n faWhatsapp, faVk, faFacebookMessenger, faTelegramPlane, faMix, faXing, faCommentAlt, faBook, faLine,\r\n faEnvelope, faCheck, faPrint, faExclamation, faLink, faEllipsisH, faMinus, faLightbulb, faCoffee, faInfo\r\n];\r\n\r\nlibrary.add(...icons);\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n\r\nconsole.log('啟動成功.');\r\ndocument.getElementById('starting').remove();\r\ndocument.getElementById('startup-fail').remove();\r\n","export enum ActionName {\r\n Root = 0,\r\n Login = 1,\r\n PersonalStorage = 2,\r\n PersonalStorageJudgment = 3,\r\n PersonalStorageLaw = 4,\r\n PersonalStorageJudicialInterpret = 5,\r\n EditCategory = 6,\r\n EditSn = 7,\r\n OrderSn = 8,\r\n SearchCondition = 9,\r\n PhoneVerify = 10,\r\n PasswordChange = 11,\r\n LawRuleSearch = 12,\r\n JudgmentSearch = 13,\r\n JudicialInterpertSearch = 14,\r\n RequestPasswordChangeKey = 15,\r\n Register = 16,\r\n FixData = 17,\r\n Note = 18,\r\n RecommendFriend = 19,\r\n LinkAccount = 20,\r\n MemberProfile = 21,\r\n Issue = 22,\r\n TeamInfoList = 23,\r\n MyTeam = 24,\r\n BuildTeam = 25,\r\n TeamInfo = 26,\r\n Team = 27,\r\n TeamAnnounce = 28,\r\n TeamAddMember = 29,\r\n TeamMember = 30,\r\n TeamSharedStorage = 31,\r\n TeamNoteMeet = 32,\r\n CopyNote = 33,\r\n FavLawRule = 34,\r\n NEWS = 35,\r\n SearchAll = 36,\r\n TeamLesson = 37,\r\n}\r\n","import { AfterContentInit, ComponentRef, Directive } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Directive()\r\nexport class BasePopup implements AfterContentInit {\r\n public onAfterContentInit$: Subject = new Subject();\r\n componentRef: ComponentRef;\r\n doNotUseLastClose: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngAfterContentInit(): void {\r\n this.onAfterContentInit$.next();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-block-guest-function-popup',\r\n templateUrl: './block-guest-function-popup.component.html',\r\n styleUrls: ['./block-guest-function-popup.component.scss']\r\n})\r\nexport class BlockGuestFunctionPopupComponent implements OnInit {\r\n\r\n onClose: () => void;\r\n\r\n constructor() { }\r\n ngOnInit(): void {\r\n }\r\n clickClose(): void {\r\n this.onClose();\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
訪客使用須知
\r\n
訪客尚無編輯或變更權限
\r\n
請立即註冊會員獲取權限
\r\n
訪客體驗時間每日半小時
\r\n
\r\n
知道了
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BlockGuestFunctionPopupComponent } from './block-guest-function-popup.component';\r\nimport { FramePopupHeadModule } from 'projects/mobile/src/app/common/frame-popup-head/frame-popup-head.module';\r\nimport { FramePopupCloseModule } from 'projects/mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n BlockGuestFunctionPopupComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n FramePopupHeadModule\r\n ],\r\n exports: [\r\n BlockGuestFunctionPopupComponent\r\n ]\r\n})\r\nexport class BlockGuestFunctionPopupModule { }\r\n","import { Component, OnInit, ViewChild, ElementRef, Output, EventEmitter, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\n\r\n@Component({\r\n selector: 'app-bookmark-rename-popup',\r\n templateUrl: './bookmark-rename-popup.component.html',\r\n styleUrls: ['./bookmark-rename-popup.component.scss']\r\n})\r\nexport class BookmarkRenamePopupComponent extends BasePopup implements OnInit {\r\n @ViewChild('input', { static: true }) inputElementRef: ElementRef;\r\n @Output() confirm: EventEmitter = new EventEmitter();\r\n\r\n sourceText: string = '';\r\n text: string = '';\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n initPopup(sourceText: any): void {\r\n // this.clickShowPopup = true;\r\n this.sourceText = sourceText;\r\n this.text = sourceText;\r\n\r\n setTimeout(() => {\r\n this.inputElementRef.nativeElement.focus();\r\n this.inputElementRef.nativeElement.dispatchEvent(new CustomEvent('input'));\r\n }, 1);\r\n }\r\n clickConfirm(): void {\r\n this.confirm.emit(this.text);\r\n }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n checkKeydown(ev: KeyboardEvent): void {\r\n if (ev.keyCode === 27) {\r\n this.closePopup();\r\n }\r\n }\r\n enterKeydown(ev: KeyboardEvent): void {\r\n if (ev.keyCode !== 13) {\r\n return;\r\n }\r\n this.clickConfirm();\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n if (ev.keyCode === 27 && !this.popupManagerService.closeLast()) {\r\n this.closePopup();\r\n }\r\n }\r\n\r\n checkDisableConfirmButton(): boolean {\r\n return this.text.length === 0;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
書籤命名
\r\n \r\n
\r\n
\r\n
\r\n
請輸入書籤標題:
\r\n
{{text.length}}/20
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from 'projects/mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BookmarkRenamePopupComponent } from './bookmark-rename-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [BookmarkRenamePopupComponent],\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [BookmarkRenamePopupComponent]\r\n})\r\nexport class BookmarkRenamePopupModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-case-duplicate-warning-popup',\r\n templateUrl: './case-duplicate-warning-popup.component.html',\r\n styleUrls: ['./case-duplicate-warning-popup.component.scss']\r\n})\r\nexport class CaseDuplicateWarningPopupComponent implements OnInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
警告!
\r\n
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n
\r\n
已有相同案件,避免資料錯誤覆蓋,禁止下載
\r\n
\r\n
確定
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from 'projects/mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CaseDuplicateWarningPopupComponent } from './case-duplicate-warning-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [CaseDuplicateWarningPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [CaseDuplicateWarningPopupComponent]\r\n})\r\nexport class CaseDuplicateWarningPopupModule { }\r\n","
統字
\r\n
院字
\r\n
解字
\r\n
院解字
\r\n
釋字
\r\n
判例
\r\n
價值裁判
\r\n
精選裁判
\r\n
精選裁判
\r\n
決議
\r\n
議決書
\r\n
判決
\r\n
不受理
\r\n
座談會
\r\n
大法庭
\r\n
行政函令
\r\n
提案裁定
\r\n
撤銷提案
\r\n
大法庭
\r\n
意見統一
\r\n
判決
\r\n
裁定
\r\n
其他
\r\n
起訴書
\r\n
追加起訴
\r\n
簡易處刑
\r\n
併辦意旨
\r\n
其他
\r\n
憲法判決
\r\n
憲法實裁
\r\n
憲法程裁
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PropertyId } from '../case-type/property-id.enum';\r\n\r\n@Component({\r\n selector: 'case-property',\r\n templateUrl: './case-property.component.html',\r\n styleUrls: ['./case-property.component.scss']\r\n})\r\nexport class CasePropertyComponent implements OnInit {\r\n // propertyId = PropertyId;\r\n @Input('propertyId') propertyId: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CasePropertyComponent } from './case-property.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [CasePropertyComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [CasePropertyComponent]\r\n})\r\nexport class CasePropertyModule { }\r\n","import { Component, OnInit, ElementRef, HostListener, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { CaseTag } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/case-tag';\r\nimport { KeywordFinderLiteComponent } from '../keyword-finder-lite/keyword-finder-lite.component';\r\nimport { CaseTagService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/case-tag.service';\r\nimport { JudgmentCase } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment-case';\r\nimport { CaseTagUpdateRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/case-tag-update-request';\r\nimport { JudicialInterpretCase } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-case';\r\nimport { CaseType } from '../personal-config-popup/personal-config-popup.service';\r\n\r\n@Component({\r\n selector: 'app-case-tag-popup',\r\n templateUrl: './case-tag-popup.component.html',\r\n styleUrls: ['./case-tag-popup.component.scss']\r\n})\r\nexport class CaseTagPopupComponent extends BasePopup implements OnInit {\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n private caseTagService: CaseTagService,\r\n ) {\r\n super();\r\n }\r\n @ViewChild('keywordFinderLite', { static: true }) keywordFinderLite: KeywordFinderLiteComponent;\r\n @Output() confirm: EventEmitter = new EventEmitter();\r\n\r\n type: CaseType;\r\n sourceList: CaseTag[] = [];\r\n list: CaseTag[] = [];\r\n // note: JudgmentCase | JudicialInterpretCase;\r\n\r\n searchedKeyword: string = '';\r\n searchedList: CaseTag[] = [];\r\n saving: boolean = false;\r\n initEnd: boolean = false;\r\n // noteIdGetter: { [key in keyof typeof CaseType]: (note: any) => string } = {\r\n // Judgment: (note) => (note).judgment_note_id,\r\n // JudicialInterpret: (note) => (note).judicial_interpret_note_id,\r\n // LawRule: () => null\r\n // };\r\n // typeUpdate: { [key in keyof typeof CaseType]: (request: CaseTagUpdateRequest) => void } = {\r\n // Judgment: (r) => { this.pushJudgment(r); },\r\n // JudicialInterpret: (r) => { this.pushJudicialInterpret(r); },\r\n // LawRule: () => { },\r\n // };\r\n\r\n ngOnInit() {\r\n this.initEnd = false;\r\n }\r\n initPopup(type: CaseType, caseTagList: CaseTag[]): void {\r\n this.type = type;\r\n\r\n this.sourceList = caseTagList;\r\n this.list = this.cloneList(caseTagList);\r\n // console.log(this.list);\r\n this.reindexSn();\r\n this.keywordFinderLite.inputElement.nativeElement.focus();\r\n setTimeout(() => {\r\n this.initEnd = true;\r\n }, 500);\r\n // this.keywordFinderLite.inputText.text;\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n convertDateTimeToString(time: number): string {\r\n const date = new Date(time);\r\n return date.getFullYear()\r\n + '/' + (date.getMonth() + 1).toString().padStart(2, '0')\r\n + '/' + (date.getDate()).toString().padStart(2, '0')\r\n + ' ' + (date.getHours()).toString().padStart(2, '0')\r\n + ':' + (date.getMinutes()).toString().padStart(2, '0');\r\n }\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n checkCursorClickTarget(ev: any, element: Element): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n }\r\n getElementFromClickPath(ev: any, className: string): HTMLElement {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).find((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) clickCheck($ev: MouseEvent): void {\r\n if (this.initEnd && !this.checkCursorClickClassName($ev, 'case-tag-popup-window')) {\r\n this.closePopup();\r\n }\r\n }\r\n\r\n\r\n /** 設定清單 */\r\n cloneList(list: CaseTag[]) {\r\n return JSON.parse(JSON.stringify(list));\r\n }\r\n\r\n\r\n /** 輸入框 searchedKeyword*/\r\n clickAddCaseTag(): void {\r\n const newCaseTag: CaseTag = {\r\n sn: this.list.length,\r\n text: this.keywordFinderLite.inputText.text,\r\n reference_count: 0\r\n };\r\n\r\n this.list.push(newCaseTag);\r\n\r\n this.keywordFinderLite.setText('');\r\n\r\n this.reindexSn();\r\n }\r\n hasDuplicate(name: string): boolean {\r\n return this.list.some(v => v.text === name);\r\n }\r\n disableAddButton(): boolean {\r\n return !this.keywordFinderLite.inputText.text\r\n || this.hasDuplicate(this.keywordFinderLite.inputText.text);\r\n }\r\n\r\n\r\n /** 案件標籤清單 */\r\n checkSnOrder(list: CaseTag[]): boolean {\r\n const sourceSnList = this.list.map(v => v.sn);\r\n const newSnList = this.list.map((v, i) => i);\r\n\r\n return sourceSnList.join(',') === newSnList.join(',');\r\n }\r\n needReindexSn(): boolean {\r\n const sourceSnList = this.sourceList.map(v => v.sn);\r\n const newSnList = this.sourceList.map((v, i) => i);\r\n\r\n return sourceSnList.join(',') !== newSnList.join(',');\r\n }\r\n hasChange(): boolean {\r\n const sourceList = this.sourceList.map(v => v.sn + '-' + v.text);\r\n const newList = this.list.map(v => v.sn + '-' + v.text);\r\n\r\n return sourceList.join(',') !== newList.join(',');\r\n }\r\n reindexSn(): void {\r\n this.list.forEach((v, i) => {\r\n v.sn = i;\r\n });\r\n }\r\n clickDeleteCaseTag(item: CaseTag): void {\r\n this.list = this.list.filter(v => v !== item);\r\n\r\n this.reindexSn();\r\n }\r\n\r\n\r\n /** 儲存 */\r\n disableSaveButton(): boolean {\r\n return this.saving ||\r\n !this.needReindexSn() &&\r\n !this.hasChange();\r\n }\r\n clickSave(): void {\r\n this.saving = true;\r\n this.confirm.emit(this.list);\r\n // const request: CaseTagUpdateRequest = {\r\n // note_id: this.getNoteId(this.note),\r\n // list: this.list\r\n // } as CaseTagUpdateRequest;\r\n\r\n // this.typeUpdate[CaseType[this.type]](request);\r\n }\r\n // getNoteId(note: JudgmentCase | JudicialInterpretCase): string {\r\n // return this.noteIdGetter[CaseType[this.type]](note);\r\n // }\r\n // pushJudgment(request: CaseTagUpdateRequest): void {\r\n // this.caseTagService.updateJudgmentObserver(request).subscribe(r => {\r\n // this.sourceList.splice(0);\r\n // this.sourceList.push(...this.list);\r\n // this.closePopup();\r\n // });\r\n // }\r\n // pushJudicialInterpret(request: CaseTagUpdateRequest): void {\r\n // this.caseTagService.updateJudicialInterpretObserver(request).subscribe(r => {\r\n // this.sourceList.splice(0);\r\n // this.sourceList.push(...this.list);\r\n // this.closePopup();\r\n // });\r\n // }\r\n\r\n\r\n\r\n /** 提示來源 */\r\n findTag(name: string): CaseTag {\r\n return this.list.find(v => v.text === name);\r\n }\r\n searchCaseTag(keyword: string): void {\r\n const _keyword = keyword.trim();\r\n this.keywordFinderLite.searchedText = '';\r\n this.searchedKeyword = keyword;\r\n\r\n if (!_keyword) {\r\n this.searchedList = [];\r\n // console.log(this.searchedList);\r\n } else {\r\n this.caseTagService.searchObserver(this.type, keyword).subscribe(r => {\r\n // this.searchedKeyword = keyword;\r\n this.searchedList = r;\r\n });\r\n // this.caseTagService.searchJudgmentObserver(keyword).subscribe(r => {\r\n // this.searchedKeyword = keyword;\r\n // this.searchedList = r;\r\n // });\r\n }\r\n }\r\n setCaseTagTextToInput(keyword: string): void {\r\n if (this.hasDuplicate(keyword)) { return; }\r\n\r\n this.keywordFinderLite.setText(keyword);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
案件標籤
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{keywordFinderLite.inputText.text.length}} / 15
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item.sn+1}}
\r\n
{{item.text}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
儲存
\r\n
\r\n
\r\n
\r\n
\r\n
提示來源
\r\n
\r\n
\r\n
自己
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
[引用:{{item.reference_count}}]
\r\n
\r\n
\r\n
共符合{{searchedList.length}}
\r\n
\r\n
","import { FramePopupCloseModule } from 'projects/mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CaseTagPopupComponent } from './case-tag-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { KeywordFinderLiteModule } from '../keyword-finder-lite/keyword-finder-lite.module';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n KeywordFinderLiteModule,\r\n PipeHighlightModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [CaseTagPopupComponent],\r\n exports: [CaseTagPopupComponent]\r\n})\r\nexport class CaseTagPopupModule { }\r\n","import { Court } from './court';\r\nimport { CourtId } from './court-id.enum';\r\nimport { CourtBlockId } from './court-block-id.enum';\r\nimport { CourtTypeId } from './court-type-id.enum';\r\nimport { CaseTypeId } from './case-type-id.enum';\r\nimport { CourtBlock } from './court-block';\r\nimport { CourtType } from './court-type';\r\nimport { CaseType } from './case-type';\r\nimport { PropertyId } from './property-id.enum';\r\nimport { JudgmentProperty } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment-property';\r\nimport { JudgmentType } from 'projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-type.enum';\r\nimport { JudgmentCourtId } from 'projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-court-id.enum';\r\nimport { JudgmentSearchResultType } from 'projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-result/judgment-search-result-type.enum';\r\nimport { IndictmentCourtId } from 'projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/indictment-court-id.enum';\r\n\r\nexport class CaseName {\r\n private static _courts = {\r\n JudicialInterpret_ctypeABC: Court.create2({\r\n court_id: CourtId.JudicialInterpret_ctypeABC,\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_Court,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '司法院解釋',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_ctypeD: Court.create2({\r\n court_id: CourtId.JudicialInterpret_ctypeD,\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_BigJudge,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '大法官解釋',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_ttypeX: Court.create2({\r\n court_id: CourtId.JudicialInterpret_ttypeX,\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_Reject,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '大法官不受理案件',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_xftype38: Court.create2({\r\n court_id: CourtId.JudicialInterpret_xftype38,\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_XF,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '憲法判決',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_xftype39: Court.create2({\r\n court_id: CourtId.JudicialInterpret_xftype39,\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_XF,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '實體裁定',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_xftype40: Court.create2({\r\n court_id: CourtId.JudicialInterpret_xftype40,\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_XF,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '程序裁定',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtype21gc1m134: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtype21gc1m134,\r\n court_block_id: CourtBlockId.JudicialInterpret_Grand_Normal,\r\n court_type_id: CourtTypeId.JudicialInterpret_Grand,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '民事大法庭',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtype22gc2m1342: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtype22gc2m1342,\r\n court_block_id: CourtBlockId.JudicialInterpret_Grand_Normal,\r\n court_type_id: CourtTypeId.JudicialInterpret_Grand,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '刑事大法庭',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtype23gc3m134: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtype23gc3m134,\r\n court_block_id: CourtBlockId.JudicialInterpret_Grand_Normal,\r\n court_type_id: CourtTypeId.JudicialInterpret_Grand,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '行政大法庭',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeA: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeA,\r\n court_block_id: CourtBlockId.JudicialInterpret_Precedent_Normal,\r\n court_type_id: CourtTypeId.JudicialInterpret_Precedent,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '民事類',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeB: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeB,\r\n court_block_id: CourtBlockId.JudicialInterpret_Precedent_Normal,\r\n court_type_id: CourtTypeId.JudicialInterpret_Precedent,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '刑事類',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeE: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeE,\r\n court_block_id: CourtBlockId.JudicialInterpret_Precedent_Normal,\r\n court_type_id: CourtTypeId.JudicialInterpret_Precedent,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '行政類',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtype1A: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtype1A,\r\n court_block_id: CourtBlockId.JudicialInterpret_Precedent_Stop,\r\n court_type_id: CourtTypeId.JudicialInterpret_Precedent,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '民事停止適用判例',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtype1B: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtype1B,\r\n court_block_id: CourtBlockId.JudicialInterpret_Precedent_Stop,\r\n court_type_id: CourtTypeId.JudicialInterpret_Precedent,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '刑事停止適用判例',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtype1E: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtype1E,\r\n court_block_id: CourtBlockId.JudicialInterpret_Precedent_Stop,\r\n court_type_id: CourtTypeId.JudicialInterpret_Precedent,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '行政停止適用判例',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeI: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeI,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '地方法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeG: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeG,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '高等法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeC01: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeC01,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '最高法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeO: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeO,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '智慧財產法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeJ: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeJ,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_M,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '地方法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeH: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeH,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_M,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '高等法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeD01: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeD01,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_M,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '最高法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeP: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeP,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_M,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '智慧財產法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeR: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeR,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_A,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '地方法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeK: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeK,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_A,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '高等法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeF01: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeF01,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_A,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '最高法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeQ: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeQ,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_A,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '智慧財產法院',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeU: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeU,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_SupremeReference,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '民事類',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeV: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeV,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_SupremeReference,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '刑事類',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeS: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeS,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_HighReference,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '民事類',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeT: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeT,\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_HighReference,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '刑事類',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_dtypeA01: Court.create2({\r\n court_id: CourtId.JudicialInterpret_dtypeA01,\r\n court_block_id: CourtBlockId.JudicialInterpret_Resolution_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Resolution,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n // list_name: '最高法院決議 ',\r\n list_name: '最高法院民事決議',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_dtypeB01: Court.create2({\r\n court_id: CourtId.JudicialInterpret_dtypeB01,\r\n court_block_id: CourtBlockId.JudicialInterpret_Resolution_M,\r\n court_type_id: CourtTypeId.JudicialInterpret_Resolution,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n // list_name: '最高法院決議',\r\n list_name: '最高法院刑事決議',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_dtypeC01: Court.create2({\r\n court_id: CourtId.JudicialInterpret_dtypeC01,\r\n court_block_id: CourtBlockId.JudicialInterpret_Resolution_A,\r\n court_type_id: CourtTypeId.JudicialInterpret_Resolution,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n // list_name: '最高行政法院聯席會議決議',\r\n list_name: '最高法院行政決議',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_jtypeL: Court.create2({\r\n court_id: CourtId.JudicialInterpret_jtypeL,\r\n court_block_id: CourtBlockId.JudicialInterpret_Discipline_Discipline,\r\n court_type_id: CourtTypeId.JudicialInterpret_Discipline,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '公懲裁判',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_qtypeA: Court.create2({\r\n court_id: CourtId.JudicialInterpret_qtypeA,\r\n court_block_id: CourtBlockId.JudicialInterpret_Seminar_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Seminar,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '民事法律問題座談',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_qtypeG: Court.create2({\r\n court_id: CourtId.JudicialInterpret_qtypeG,\r\n court_block_id: CourtBlockId.JudicialInterpret_Seminar_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Seminar,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '公證法律問題研討',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_qtypeB: Court.create2({\r\n court_id: CourtId.JudicialInterpret_qtypeB,\r\n court_block_id: CourtBlockId.JudicialInterpret_Seminar_M,\r\n court_type_id: CourtTypeId.JudicialInterpret_Seminar,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '刑事法律問題座談',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_qtypeC: Court.create2({\r\n court_id: CourtId.JudicialInterpret_qtypeC,\r\n court_block_id: CourtBlockId.JudicialInterpret_Seminar_A,\r\n court_type_id: CourtTypeId.JudicialInterpret_Seminar,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '行政法律問題座談',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_qtypeD: Court.create2({\r\n court_id: CourtId.JudicialInterpret_qtypeD,\r\n court_block_id: CourtBlockId.JudicialInterpret_Seminar_Discipline,\r\n court_type_id: CourtTypeId.JudicialInterpret_Seminar,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '公懲法律問題座談',\r\n class_name: '',\r\n }),\r\n JudicialInterpret_etypeX01: Court.create2({\r\n court_id: CourtId.JudicialInterpret_etypeX01,\r\n court_block_id: CourtBlockId.JudicialInterpret_Execute_Execute,\r\n court_type_id: CourtTypeId.JudicialInterpret_Execute,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '',\r\n list_name: '所有機關',\r\n class_name: '',\r\n }),\r\n LawRule_Now_Name: Court.create2({\r\n court_id: CourtId.LawRule_Now_Name,\r\n court_block_id: CourtBlockId.LawRule_Now,\r\n court_type_id: CourtTypeId.LawRule,\r\n case_type_id: CaseTypeId.LawRule,\r\n condition_name: '法規名稱',\r\n list_name: '法規名稱',\r\n class_name: '',\r\n }),\r\n LawRule_Now_Fulltext: Court.create2({\r\n court_id: CourtId.LawRule_Now_Fulltext,\r\n court_block_id: CourtBlockId.LawRule_Now,\r\n court_type_id: CourtTypeId.LawRule,\r\n case_type_id: CaseTypeId.LawRule,\r\n condition_name: '法規內容',\r\n list_name: '法規內容',\r\n class_name: '',\r\n }),\r\n LawRule_Repeal_Name: Court.create2({\r\n court_id: CourtId.LawRule_Repeal_Name,\r\n court_block_id: CourtBlockId.LawRule_Repeal,\r\n court_type_id: CourtTypeId.LawRule,\r\n case_type_id: CaseTypeId.LawRule,\r\n condition_name: '法規名稱',\r\n list_name: '法規名稱',\r\n class_name: '',\r\n }),\r\n LawRule_Repeal_Fulltext: Court.create2({\r\n court_id: CourtId.LawRule_Repeal_Fulltext,\r\n court_block_id: CourtBlockId.LawRule_Repeal,\r\n court_type_id: CourtTypeId.LawRule,\r\n case_type_id: CaseTypeId.LawRule,\r\n condition_name: '法規內容',\r\n list_name: '法規內容',\r\n class_name: '',\r\n }),\r\n LawRule_Stop_Name: Court.create2({\r\n court_id: CourtId.LawRule_Stop_Name,\r\n court_block_id: CourtBlockId.LawRule_Stop,\r\n court_type_id: CourtTypeId.LawRule,\r\n case_type_id: CaseTypeId.LawRule,\r\n condition_name: '法規名稱',\r\n list_name: '法規名稱',\r\n class_name: '',\r\n }),\r\n LawRule_Stop_Fulltext: Court.create2({\r\n court_id: CourtId.LawRule_Stop_Fulltext,\r\n court_block_id: CourtBlockId.LawRule_Stop,\r\n court_type_id: CourtTypeId.LawRule,\r\n case_type_id: CaseTypeId.LawRule,\r\n condition_name: '法規內容',\r\n list_name: '法規內容',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Taipei: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Taipei,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺北',\r\n list_name: '臺北地方法院',\r\n mobile_list_name: '臺北地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Shihlin: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Shihlin,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '士林',\r\n list_name: '士林地方法院',\r\n mobile_list_name: '士林地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_New_Taipei: Court.create2({\r\n court_id: CourtId.Judgment_V_D_New_Taipei,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '新北',\r\n list_name: '新北地方法院',\r\n mobile_list_name: '新北地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Keelung: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Keelung,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '基隆',\r\n list_name: '基隆地方法院',\r\n mobile_list_name: '基隆地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Yilan: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Yilan,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '宜蘭',\r\n list_name: '宜蘭地方法院',\r\n mobile_list_name: '宜蘭地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Taoyuan: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Taoyuan,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '桃園',\r\n list_name: '桃園地方法院',\r\n mobile_list_name: '桃園地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Hsinchu: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Hsinchu,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '新竹',\r\n list_name: '新竹地方法院',\r\n mobile_list_name: '新竹地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Miaoli: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Miaoli,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '苗栗',\r\n list_name: '苗栗地方法院',\r\n mobile_list_name: '苗栗地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Taichung: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Taichung,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺中',\r\n list_name: '臺中地方法院',\r\n mobile_list_name: '臺中地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Changhua: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Changhua,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '彰化',\r\n list_name: '彰化地方法院',\r\n mobile_list_name: '彰化地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Nantou: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Nantou,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '南投',\r\n list_name: '南投地方法院',\r\n mobile_list_name: '南投地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Yunlin: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Yunlin,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '雲林',\r\n list_name: '雲林地方法院',\r\n mobile_list_name: '雲林地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Chiayi: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Chiayi,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '嘉義',\r\n list_name: '嘉義地方法院',\r\n mobile_list_name: '嘉義地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Tainan: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Tainan,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺南',\r\n list_name: '臺南地方法院',\r\n mobile_list_name: '臺南地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Kaohsiung: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Kaohsiung,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高雄',\r\n list_name: '高雄地方法院',\r\n mobile_list_name: '高雄地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Qiaotou: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Qiaotou,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '橋頭',\r\n list_name: '橋頭地方法院',\r\n mobile_list_name: '橋頭地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Hualien: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Hualien,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '花蓮',\r\n list_name: '花蓮地方法院',\r\n mobile_list_name: '花蓮地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Taitung: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Taitung,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺東',\r\n list_name: '臺東地方法院',\r\n mobile_list_name: '臺東地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Pingtung: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Pingtung,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '屏東',\r\n list_name: '屏東地方法院',\r\n mobile_list_name: '屏東地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Penghu: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Penghu,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '澎湖',\r\n list_name: '澎湖地方法院',\r\n mobile_list_name: '澎湖地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Kinmen: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Kinmen,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '金門',\r\n list_name: '金門地方法院',\r\n mobile_list_name: '金門地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Lienchiang: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Lienchiang,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '連江',\r\n list_name: '連江地方法院',\r\n mobile_list_name: '連江地院',\r\n class_name: '',\r\n }),\r\n Judgment_V_D_Kaohsiung_Juvenile: Court.create2({\r\n court_id: CourtId.Judgment_V_D_Kaohsiung_Juvenile,\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高雄少年及家事法院',\r\n list_name: '高雄少年及家事法院',\r\n mobile_list_name: '少家法院',\r\n class_name: '',\r\n }),\r\n Judgment_V_H: Court.create2({\r\n court_id: CourtId.Judgment_V_H,\r\n court_block_id: CourtBlockId.Judgment_Civil_High,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺灣高等',\r\n list_name: '高等法院',\r\n mobile_list_name: '高等法院',\r\n class_name: '',\r\n }),\r\n Judgment_V_H_Taichung: Court.create2({\r\n court_id: CourtId.Judgment_V_H_Taichung,\r\n court_block_id: CourtBlockId.Judgment_Civil_High,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺中分院',\r\n list_name: '高等法院 臺中分院',\r\n mobile_list_name: '臺中高院',\r\n class_name: '',\r\n }),\r\n Judgment_V_H_Tainan: Court.create2({\r\n court_id: CourtId.Judgment_V_H_Tainan,\r\n court_block_id: CourtBlockId.Judgment_Civil_High,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺南分院',\r\n list_name: '高等法院 臺南分院',\r\n mobile_list_name: '臺南高院',\r\n class_name: '',\r\n }),\r\n Judgment_V_H_Hualien: Court.create2({\r\n court_id: CourtId.Judgment_V_H_Hualien,\r\n court_block_id: CourtBlockId.Judgment_Civil_High,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '花蓮分院',\r\n list_name: '高等法院 花蓮分院',\r\n mobile_list_name: '花蓮高院',\r\n class_name: '',\r\n }),\r\n Judgment_V_H_Kaohsiung: Court.create2({\r\n court_id: CourtId.Judgment_V_H_Kaohsiung,\r\n court_block_id: CourtBlockId.Judgment_Civil_High,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高雄分院',\r\n list_name: '高等法院 高雄分院',\r\n mobile_list_name: '高雄高院',\r\n class_name: '',\r\n }),\r\n Judgment_V_H_Kinmen: Court.create2({\r\n court_id: CourtId.Judgment_V_H_Kinmen,\r\n court_block_id: CourtBlockId.Judgment_Civil_High,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '金門分院',\r\n list_name: '高等法院 金門分院',\r\n mobile_list_name: '金門高院',\r\n class_name: '',\r\n }),\r\n Judgment_V_S: Court.create2({\r\n court_id: CourtId.Judgment_V_S,\r\n court_block_id: CourtBlockId.Judgment_Civil_Supreme,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '最高法院',\r\n list_name: '最高法院',\r\n mobile_list_name: '最高法院',\r\n class_name: '',\r\n }),\r\n Judgment_V_I: Court.create2({\r\n court_id: CourtId.Judgment_V_I,\r\n court_block_id: CourtBlockId.Judgment_Intellectual,\r\n court_type_id: CourtTypeId.Judgment_Intellectual,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '民事',\r\n list_name: '民事智財法院',\r\n mobile_list_name: '智財法院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Taipei: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Taipei,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺北',\r\n list_name: '臺北地方法院',\r\n mobile_list_name: '臺北地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Shihlin: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Shihlin,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '士林',\r\n list_name: '士林地方法院',\r\n mobile_list_name: '士林地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_New_Taipei: Court.create2({\r\n court_id: CourtId.Judgment_M_D_New_Taipei,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '新北',\r\n list_name: '新北地方法院',\r\n mobile_list_name: '新北地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Keelung: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Keelung,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '基隆',\r\n list_name: '基隆地方法院',\r\n mobile_list_name: '基隆地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Yilan: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Yilan,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '宜蘭',\r\n list_name: '宜蘭地方法院',\r\n mobile_list_name: '宜蘭地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Taoyuan: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Taoyuan,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '桃園',\r\n list_name: '桃園地方法院',\r\n mobile_list_name: '桃園地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Hsinchu: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Hsinchu,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '新竹',\r\n list_name: '新竹地方法院',\r\n mobile_list_name: '新竹地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Miaoli: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Miaoli,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '苗栗',\r\n list_name: '苗栗地方法院',\r\n mobile_list_name: '苗栗地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Taichung: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Taichung,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺中',\r\n list_name: '臺中地方法院',\r\n mobile_list_name: '臺中地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Changhua: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Changhua,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '彰化',\r\n list_name: '彰化地方法院',\r\n mobile_list_name: '彰化地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Nantou: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Nantou,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '南投',\r\n list_name: '南投地方法院',\r\n mobile_list_name: '南投地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Yunlin: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Yunlin,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '雲林',\r\n list_name: '雲林地方法院',\r\n mobile_list_name: '雲林地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Chiayi: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Chiayi,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '嘉義',\r\n list_name: '嘉義地方法院',\r\n mobile_list_name: '嘉義地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Tainan: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Tainan,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺南',\r\n list_name: '臺南地方法院',\r\n mobile_list_name: '臺南地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Kaohsiung: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Kaohsiung,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高雄',\r\n list_name: '高雄地方法院',\r\n mobile_list_name: '高雄地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Qiaotou: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Qiaotou,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '橋頭',\r\n list_name: '橋頭地方法院',\r\n mobile_list_name: '橋頭地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Hualien: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Hualien,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '花蓮',\r\n list_name: '花蓮地方法院',\r\n mobile_list_name: '花蓮地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Taitung: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Taitung,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺東',\r\n list_name: '臺東地方法院',\r\n mobile_list_name: '臺東地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Pingtung: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Pingtung,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '屏東',\r\n list_name: '屏東地方法院',\r\n mobile_list_name: '屏東地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Penghu: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Penghu,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '澎湖',\r\n list_name: '澎湖地方法院',\r\n mobile_list_name: '澎湖地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Kinmen: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Kinmen,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '金門',\r\n list_name: '金門地方法院',\r\n mobile_list_name: '金門地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_D_Lienchiang: Court.create2({\r\n court_id: CourtId.Judgment_M_D_Lienchiang,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '連江',\r\n list_name: '連江地方法院',\r\n mobile_list_name: '連江地院',\r\n class_name: '',\r\n }),\r\n Judgment_M_H: Court.create2({\r\n court_id: CourtId.Judgment_M_H,\r\n court_block_id: CourtBlockId.Judgment_Criminal_High,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺灣高等',\r\n list_name: '高等法院',\r\n mobile_list_name: '高等法院',\r\n class_name: '',\r\n }),\r\n Judgment_M_H_Taichung: Court.create2({\r\n court_id: CourtId.Judgment_M_H_Taichung,\r\n court_block_id: CourtBlockId.Judgment_Criminal_High,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺中分院',\r\n list_name: '高等法院 臺中分院',\r\n mobile_list_name: '臺中高院',\r\n class_name: '',\r\n }),\r\n Judgment_M_H_Tainan: Court.create2({\r\n court_id: CourtId.Judgment_M_H_Tainan,\r\n court_block_id: CourtBlockId.Judgment_Criminal_High,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺南分院',\r\n list_name: '高等法院 臺南分院',\r\n mobile_list_name: '臺南高院',\r\n class_name: '',\r\n }),\r\n Judgment_M_H_Hualien: Court.create2({\r\n court_id: CourtId.Judgment_M_H_Hualien,\r\n court_block_id: CourtBlockId.Judgment_Criminal_High,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '花蓮分院',\r\n list_name: '高等法院 花蓮分院',\r\n mobile_list_name: '花蓮高院',\r\n class_name: '',\r\n }),\r\n Judgment_M_H_Kaohsiung: Court.create2({\r\n court_id: CourtId.Judgment_M_H_Kaohsiung,\r\n court_block_id: CourtBlockId.Judgment_Criminal_High,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高雄分院',\r\n list_name: '高等法院 高雄分院',\r\n mobile_list_name: '高雄高院',\r\n class_name: '',\r\n }),\r\n Judgment_M_H_Kinmen: Court.create2({\r\n court_id: CourtId.Judgment_M_H_Kinmen,\r\n court_block_id: CourtBlockId.Judgment_Criminal_High,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '金門分院',\r\n list_name: '高等法院 金門分院',\r\n mobile_list_name: '金門高院',\r\n class_name: '',\r\n }),\r\n Judgment_M_S: Court.create2({\r\n court_id: CourtId.Judgment_M_S,\r\n court_block_id: CourtBlockId.Judgment_Criminal_Supreme,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '最高法院',\r\n list_name: '最高法院',\r\n mobile_list_name: '最高法院',\r\n class_name: '',\r\n }),\r\n Judgment_M_I: Court.create2({\r\n court_id: CourtId.Judgment_M_I,\r\n court_block_id: CourtBlockId.Judgment_Intellectual,\r\n court_type_id: CourtTypeId.Judgment_Intellectual,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '刑事',\r\n list_name: '刑事智財法院',\r\n mobile_list_name: '智財法院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Taipei: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Taipei,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺北',\r\n list_name: '臺北地方法院',\r\n mobile_list_name: '臺北地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Shihlin: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Shihlin,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '士林',\r\n list_name: '士林地方法院',\r\n mobile_list_name: '士林地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_New_Taipei: Court.create2({\r\n court_id: CourtId.Judgment_A_D_New_Taipei,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '新北',\r\n list_name: '新北地方法院',\r\n mobile_list_name: '新北地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Keelung: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Keelung,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '基隆',\r\n list_name: '基隆地方法院',\r\n mobile_list_name: '基隆地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Yilan: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Yilan,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '宜蘭',\r\n list_name: '宜蘭地方法院',\r\n mobile_list_name: '宜蘭地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Taoyuan: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Taoyuan,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '桃園',\r\n list_name: '桃園地方法院',\r\n mobile_list_name: '桃園地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Hsinchu: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Hsinchu,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '新竹',\r\n list_name: '新竹地方法院',\r\n mobile_list_name: '新竹地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Miaoli: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Miaoli,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '苗栗',\r\n list_name: '苗栗地方法院',\r\n mobile_list_name: '苗栗地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Taichung: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Taichung,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺中',\r\n list_name: '臺中地方法院',\r\n mobile_list_name: '臺中地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Changhua: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Changhua,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '彰化',\r\n list_name: '彰化地方法院',\r\n mobile_list_name: '彰化地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Nantou: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Nantou,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '南投',\r\n list_name: '南投地方法院',\r\n mobile_list_name: '南投地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Yunlin: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Yunlin,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '雲林',\r\n list_name: '雲林地方法院',\r\n mobile_list_name: '雲林地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Chiayi: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Chiayi,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '嘉義',\r\n list_name: '嘉義地方法院',\r\n mobile_list_name: '嘉義地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Tainan: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Tainan,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺南',\r\n list_name: '臺南地方法院',\r\n mobile_list_name: '臺南地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Kaohsiung: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Kaohsiung,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高雄',\r\n list_name: '高雄地方法院',\r\n mobile_list_name: '高雄地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Qiaotou: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Qiaotou,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '橋頭',\r\n list_name: '橋頭地方法院',\r\n mobile_list_name: '橋頭地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Hualien: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Hualien,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '花蓮',\r\n list_name: '花蓮地方法院',\r\n mobile_list_name: '花蓮地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Taitung: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Taitung,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺東',\r\n list_name: '臺東地方法院',\r\n mobile_list_name: '臺東地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Pingtung: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Pingtung,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '屏東',\r\n list_name: '屏東地方法院',\r\n mobile_list_name: '屏東地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Penghu: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Penghu,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '澎湖',\r\n list_name: '澎湖地方法院',\r\n mobile_list_name: '澎湖地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Kinmen: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Kinmen,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '金門',\r\n list_name: '金門地方法院',\r\n mobile_list_name: '金門地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_D_Lienchiang: Court.create2({\r\n court_id: CourtId.Judgment_A_D_Lienchiang,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '連江',\r\n list_name: '連江地方法院',\r\n mobile_list_name: '連江地院',\r\n class_name: '',\r\n }),\r\n Judgment_A_H_Taipei: Court.create2({\r\n court_id: CourtId.Judgment_A_H_Taipei,\r\n court_block_id: CourtBlockId.Judgment_Administrative_High,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺北高等',\r\n list_name: '高等法院',\r\n mobile_list_name: '高等法院',\r\n class_name: '',\r\n }),\r\n Judgment_A_H_Taichung: Court.create2({\r\n court_id: CourtId.Judgment_A_H_Taichung,\r\n court_block_id: CourtBlockId.Judgment_Administrative_High,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '臺中高等',\r\n list_name: '高等法院 臺中分院',\r\n mobile_list_name: '臺中高院',\r\n class_name: '',\r\n }),\r\n Judgment_A_H_Kaohsiung: Court.create2({\r\n court_id: CourtId.Judgment_A_H_Kaohsiung,\r\n court_block_id: CourtBlockId.Judgment_Administrative_High,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高雄高等',\r\n list_name: '高等法院 高雄分院',\r\n mobile_list_name: '高雄高院',\r\n class_name: '',\r\n }),\r\n Judgment_A_S: Court.create2({\r\n court_id: CourtId.Judgment_A_S,\r\n court_block_id: CourtBlockId.Judgment_Administrative_Supreme,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '最高法院',\r\n list_name: '最高法院',\r\n mobile_list_name: '最高法院',\r\n class_name: '',\r\n }),\r\n Judgment_A_I: Court.create2({\r\n court_id: CourtId.Judgment_A_I,\r\n court_block_id: CourtBlockId.Judgment_Intellectual,\r\n court_type_id: CourtTypeId.Judgment_Intellectual,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '行政',\r\n list_name: '行政智財法院',\r\n mobile_list_name: '智財法院',\r\n class_name: '',\r\n }),\r\n Judgment_O_P: Court.create2({\r\n court_id: CourtId.Judgment_O_P,\r\n court_block_id: CourtBlockId.Judgment_Other_Discipline,\r\n court_type_id: CourtTypeId.Judgment_Other,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '懲戒法院(公務員懲戒委員會)',\r\n list_name: '公務員懲戒委員會',\r\n mobile_list_name: '懲戒法院',\r\n class_name: '',\r\n }),\r\n Judgment_O_C: Court.create2({\r\n court_id: CourtId.Judgment_O_C,\r\n court_block_id: CourtBlockId.Judgment_Other_Criminal,\r\n court_type_id: CourtTypeId.Judgment_Other,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '司法院刑事補償',\r\n list_name: '司法院刑事補償',\r\n mobile_list_name: '刑事補償',\r\n class_name: '',\r\n }),\r\n Judgment_O_J: Court.create2({\r\n court_id: CourtId.Judgment_O_J,\r\n court_block_id: CourtBlockId.Judgment_Other_Court,\r\n court_type_id: CourtTypeId.Judgment_Other,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '司法院職務法庭',\r\n list_name: '司法院職務法庭',\r\n mobile_list_name: '職務法庭',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Taipei: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Taipei,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣臺北地方檢察署',\r\n list_name: '臺北地方檢察署',\r\n mobile_list_name: '臺北地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Shihlin: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Shihlin,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣士林地方檢察署',\r\n list_name: '士林地方檢察署',\r\n mobile_list_name: '士林地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_New_Taipei: Court.create2({\r\n court_id: CourtId.Judgment_In_D_New_Taipei,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣新北地方檢察署',\r\n list_name: '新北地方檢察署',\r\n mobile_list_name: '新北地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Taoyuan: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Taoyuan,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣桃園地方檢察署',\r\n list_name: '桃園地方檢察署',\r\n mobile_list_name: '桃園地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Hsinchu: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Hsinchu,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣新竹地方檢察署',\r\n list_name: '新竹地方檢察署',\r\n mobile_list_name: '新竹地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Miaoli: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Miaoli,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣苗栗地方檢察署',\r\n list_name: '苗栗地方檢察署',\r\n mobile_list_name: '苗栗地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Taichung: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Taichung,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣臺中地方檢察署',\r\n list_name: '臺中地方檢察署',\r\n mobile_list_name: '臺中地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Changhua: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Changhua,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣彰化地方檢察署',\r\n list_name: '彰化地方檢察署',\r\n mobile_list_name: '彰化地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Nantou: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Nantou,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣南投地方檢察署',\r\n list_name: '南投地方檢察署',\r\n mobile_list_name: '南投地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Yunlin: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Yunlin,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣雲林地方檢察署',\r\n list_name: '雲林地方檢察署',\r\n mobile_list_name: '雲林地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Chiayi: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Chiayi,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣嘉義地方檢察署',\r\n list_name: '嘉義地方檢察署',\r\n mobile_list_name: '嘉義地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Tainan: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Tainan,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣臺南地方檢察署',\r\n list_name: '臺南地方檢察署',\r\n mobile_list_name: '臺南地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Kaohsiung: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Kaohsiung,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣高雄地方檢察署',\r\n list_name: '高雄地方檢察署',\r\n mobile_list_name: '高雄地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Qiaotou: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Qiaotou,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣橋頭地方檢察署',\r\n list_name: '橋頭地方檢察署',\r\n mobile_list_name: '橋頭地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Pingtung: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Pingtung,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣屏東地方檢察署',\r\n list_name: '屏東地方檢察署',\r\n mobile_list_name: '屏東地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Taitung: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Taitung,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣臺東地方檢察署',\r\n list_name: '臺東地方檢察署',\r\n mobile_list_name: '臺東地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Hualien: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Hualien,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣花蓮地方檢察署',\r\n list_name: '花蓮地方檢察署',\r\n mobile_list_name: '花蓮地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Yilan: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Yilan,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣宜蘭地方檢察署',\r\n list_name: '宜蘭地方檢察署',\r\n mobile_list_name: '宜蘭地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Keelung: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Keelung,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣基隆地方檢察署',\r\n list_name: '基隆地方檢察署',\r\n mobile_list_name: '基隆地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Penghu: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Penghu,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣澎湖地方檢察署',\r\n list_name: '澎湖地方檢察署',\r\n mobile_list_name: '澎湖地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Kinmen: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Kinmen,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '福建金門地方檢察署',\r\n list_name: '福建金門地方檢察署',\r\n mobile_list_name: '福建金門地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_D_Lienchiang: Court.create2({\r\n court_id: CourtId.Judgment_In_D_Lienchiang,\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '福建連江地方檢察署',\r\n list_name: '福建連江地方檢察署',\r\n mobile_list_name: '福建連江地檢',\r\n class_name: '',\r\n }),\r\n Judgment_In_H: Court.create2({\r\n court_id: CourtId.Judgment_In_H,\r\n court_block_id: CourtBlockId.Judgment_Indictment_High,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣高等檢察署',\r\n list_name: '高等檢察署',\r\n mobile_list_name: '',\r\n class_name: '',\r\n }),\r\n Judgment_In_H_Taichung: Court.create2({\r\n court_id: CourtId.Judgment_In_H_Taichung,\r\n court_block_id: CourtBlockId.Judgment_Indictment_High,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣高等檢察署臺中檢察分署',\r\n list_name: '高等檢察署臺中檢察分署',\r\n mobile_list_name: '',\r\n class_name: '',\r\n }),\r\n Judgment_In_H_Tainan: Court.create2({\r\n court_id: CourtId.Judgment_In_H_Tainan,\r\n court_block_id: CourtBlockId.Judgment_Indictment_High,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣高等檢察署臺南檢察分署',\r\n list_name: '高等檢察署臺南檢察分署',\r\n mobile_list_name: '',\r\n class_name: '',\r\n }),\r\n Judgment_In_H_Kaohsiung: Court.create2({\r\n court_id: CourtId.Judgment_In_H_Kaohsiung,\r\n court_block_id: CourtBlockId.Judgment_Indictment_High,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣高等檢察署高雄檢察分署',\r\n list_name: '高等檢察署高雄檢察分署',\r\n mobile_list_name: '',\r\n class_name: '',\r\n }),\r\n Judgment_In_H_Hualien: Court.create2({\r\n court_id: CourtId.Judgment_In_H_Hualien,\r\n court_block_id: CourtBlockId.Judgment_Indictment_High,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '臺灣高等檢察署花蓮檢察分署',\r\n list_name: '高等檢察署花蓮檢察分署',\r\n mobile_list_name: '',\r\n class_name: '',\r\n }),\r\n Judgment_In_H_Kinmen: Court.create2({\r\n court_id: CourtId.Judgment_In_H_Kinmen,\r\n court_block_id: CourtBlockId.Judgment_Indictment_High,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '福建高等檢察署金門檢察分署',\r\n list_name: '福建高等檢察署金門檢察分署',\r\n mobile_list_name: '',\r\n class_name: '',\r\n }),\r\n };\r\n static courts = {\r\n JudicialInterpret_ctypeABC: CaseName._courts.JudicialInterpret_ctypeABC,\r\n JudicialInterpret_ctypeD: CaseName._courts.JudicialInterpret_ctypeD,\r\n JudicialInterpret_ttypeX: CaseName._courts.JudicialInterpret_ttypeX,\r\n JudicialInterpret_xftype38: CaseName._courts.JudicialInterpret_xftype38,\r\n JudicialInterpret_xftype39: CaseName._courts.JudicialInterpret_xftype39,\r\n JudicialInterpret_xftype40: CaseName._courts.JudicialInterpret_xftype40,\r\n JudicialInterpret_jtype21gc1m134: CaseName._courts.JudicialInterpret_jtype21gc1m134,\r\n JudicialInterpret_jtype22gc2m1342: CaseName._courts.JudicialInterpret_jtype22gc2m1342,\r\n JudicialInterpret_jtype23gc3m134: CaseName._courts.JudicialInterpret_jtype23gc3m134,\r\n JudicialInterpret_jtypeA: CaseName._courts.JudicialInterpret_jtypeA,\r\n JudicialInterpret_jtypeB: CaseName._courts.JudicialInterpret_jtypeB,\r\n JudicialInterpret_jtypeE: CaseName._courts.JudicialInterpret_jtypeE,\r\n JudicialInterpret_jtype1A: CaseName._courts.JudicialInterpret_jtype1A,\r\n JudicialInterpret_jtype1B: CaseName._courts.JudicialInterpret_jtype1B,\r\n JudicialInterpret_jtype1E: CaseName._courts.JudicialInterpret_jtype1E,\r\n JudicialInterpret_jtypeI: CaseName._courts.JudicialInterpret_jtypeI,\r\n JudicialInterpret_jtypeG: CaseName._courts.JudicialInterpret_jtypeG,\r\n JudicialInterpret_jtypeC01: CaseName._courts.JudicialInterpret_jtypeC01,\r\n JudicialInterpret_jtypeO: CaseName._courts.JudicialInterpret_jtypeO,\r\n JudicialInterpret_jtypeJ: CaseName._courts.JudicialInterpret_jtypeJ,\r\n JudicialInterpret_jtypeH: CaseName._courts.JudicialInterpret_jtypeH,\r\n JudicialInterpret_jtypeD01: CaseName._courts.JudicialInterpret_jtypeD01,\r\n JudicialInterpret_jtypeP: CaseName._courts.JudicialInterpret_jtypeP,\r\n JudicialInterpret_jtypeR: CaseName._courts.JudicialInterpret_jtypeR,\r\n JudicialInterpret_jtypeK: CaseName._courts.JudicialInterpret_jtypeK,\r\n JudicialInterpret_jtypeF01: CaseName._courts.JudicialInterpret_jtypeF01,\r\n JudicialInterpret_jtypeQ: CaseName._courts.JudicialInterpret_jtypeQ,\r\n JudicialInterpret_jtypeU: CaseName._courts.JudicialInterpret_jtypeU,\r\n JudicialInterpret_jtypeV: CaseName._courts.JudicialInterpret_jtypeV,\r\n JudicialInterpret_jtypeS: CaseName._courts.JudicialInterpret_jtypeS,\r\n JudicialInterpret_jtypeT: CaseName._courts.JudicialInterpret_jtypeT,\r\n JudicialInterpret_dtypeA01: CaseName._courts.JudicialInterpret_dtypeA01,\r\n JudicialInterpret_dtypeB01: CaseName._courts.JudicialInterpret_dtypeB01,\r\n JudicialInterpret_dtypeC01: CaseName._courts.JudicialInterpret_dtypeC01,\r\n JudicialInterpret_jtypeL: CaseName._courts.JudicialInterpret_jtypeL,\r\n JudicialInterpret_qtypeA: CaseName._courts.JudicialInterpret_qtypeA,\r\n JudicialInterpret_qtypeG: CaseName._courts.JudicialInterpret_qtypeG,\r\n JudicialInterpret_qtypeB: CaseName._courts.JudicialInterpret_qtypeB,\r\n JudicialInterpret_qtypeC: CaseName._courts.JudicialInterpret_qtypeC,\r\n JudicialInterpret_qtypeD: CaseName._courts.JudicialInterpret_qtypeD,\r\n JudicialInterpret_etypeX01: CaseName._courts.JudicialInterpret_etypeX01,\r\n\r\n ctypeABC: CaseName._courts.JudicialInterpret_ctypeABC,\r\n ctypeD: CaseName._courts.JudicialInterpret_ctypeD,\r\n ttypeX: CaseName._courts.JudicialInterpret_ttypeX,\r\n jtype21gc1m134: CaseName._courts.JudicialInterpret_jtype21gc1m134,\r\n jtype22gc2m1342: CaseName._courts.JudicialInterpret_jtype22gc2m1342,\r\n jtype23gc3m134: CaseName._courts.JudicialInterpret_jtype23gc3m134,\r\n jtypeA: CaseName._courts.JudicialInterpret_jtypeA,\r\n jtypeB: CaseName._courts.JudicialInterpret_jtypeB,\r\n jtypeE: CaseName._courts.JudicialInterpret_jtypeE,\r\n jtype1A: CaseName._courts.JudicialInterpret_jtype1A,\r\n jtype1B: CaseName._courts.JudicialInterpret_jtype1B,\r\n jtype1E: CaseName._courts.JudicialInterpret_jtype1E,\r\n jtypeI: CaseName._courts.JudicialInterpret_jtypeI,\r\n jtypeG: CaseName._courts.JudicialInterpret_jtypeG,\r\n jtypeC01: CaseName._courts.JudicialInterpret_jtypeC01,\r\n jtypeO: CaseName._courts.JudicialInterpret_jtypeO,\r\n jtypeJ: CaseName._courts.JudicialInterpret_jtypeJ,\r\n jtypeH: CaseName._courts.JudicialInterpret_jtypeH,\r\n jtypeD01: CaseName._courts.JudicialInterpret_jtypeD01,\r\n jtypeP: CaseName._courts.JudicialInterpret_jtypeP,\r\n jtypeR: CaseName._courts.JudicialInterpret_jtypeR,\r\n jtypeK: CaseName._courts.JudicialInterpret_jtypeK,\r\n jtypeF01: CaseName._courts.JudicialInterpret_jtypeF01,\r\n jtypeQ: CaseName._courts.JudicialInterpret_jtypeQ,\r\n jtypeU: CaseName._courts.JudicialInterpret_jtypeU,\r\n jtypeV: CaseName._courts.JudicialInterpret_jtypeV,\r\n jtypeS: CaseName._courts.JudicialInterpret_jtypeS,\r\n jtypeT: CaseName._courts.JudicialInterpret_jtypeT,\r\n dtypeA01: CaseName._courts.JudicialInterpret_dtypeA01,\r\n dtypeB01: CaseName._courts.JudicialInterpret_dtypeB01,\r\n dtypeC01: CaseName._courts.JudicialInterpret_dtypeC01,\r\n jtypeL: CaseName._courts.JudicialInterpret_jtypeL,\r\n qtypeA: CaseName._courts.JudicialInterpret_qtypeA,\r\n qtypeG: CaseName._courts.JudicialInterpret_qtypeG,\r\n qtypeB: CaseName._courts.JudicialInterpret_qtypeB,\r\n qtypeC: CaseName._courts.JudicialInterpret_qtypeC,\r\n qtypeD: CaseName._courts.JudicialInterpret_qtypeD,\r\n etypeX01: CaseName._courts.JudicialInterpret_etypeX01,\r\n\r\n LawRule_Now_Name: CaseName._courts.LawRule_Now_Name,\r\n LawRule_Now_Fulltext: CaseName._courts.LawRule_Now_Fulltext,\r\n LawRule_Repeal_Name: CaseName._courts.LawRule_Repeal_Name,\r\n LawRule_Repeal_Fulltext: CaseName._courts.LawRule_Repeal_Fulltext,\r\n LawRule_Stop_Name: CaseName._courts.LawRule_Stop_Name,\r\n LawRule_Stop_Fulltext: CaseName._courts.LawRule_Stop_Fulltext,\r\n\r\n Judgment_V_D_Taipei: CaseName._courts.Judgment_V_D_Taipei,\r\n Judgment_V_D_Shihlin: CaseName._courts.Judgment_V_D_Shihlin,\r\n Judgment_V_D_New_Taipei: CaseName._courts.Judgment_V_D_New_Taipei,\r\n Judgment_V_D_Keelung: CaseName._courts.Judgment_V_D_Keelung,\r\n Judgment_V_D_Yilan: CaseName._courts.Judgment_V_D_Yilan,\r\n Judgment_V_D_Taoyuan: CaseName._courts.Judgment_V_D_Taoyuan,\r\n Judgment_V_D_Hsinchu: CaseName._courts.Judgment_V_D_Hsinchu,\r\n Judgment_V_D_Miaoli: CaseName._courts.Judgment_V_D_Miaoli,\r\n Judgment_V_D_Taichung: CaseName._courts.Judgment_V_D_Taichung,\r\n Judgment_V_D_Changhua: CaseName._courts.Judgment_V_D_Changhua,\r\n Judgment_V_D_Nantou: CaseName._courts.Judgment_V_D_Nantou,\r\n Judgment_V_D_Yunlin: CaseName._courts.Judgment_V_D_Yunlin,\r\n Judgment_V_D_Chiayi: CaseName._courts.Judgment_V_D_Chiayi,\r\n Judgment_V_D_Tainan: CaseName._courts.Judgment_V_D_Tainan,\r\n Judgment_V_D_Kaohsiung: CaseName._courts.Judgment_V_D_Kaohsiung,\r\n Judgment_V_D_Qiaotou: CaseName._courts.Judgment_V_D_Qiaotou,\r\n Judgment_V_D_Hualien: CaseName._courts.Judgment_V_D_Hualien,\r\n Judgment_V_D_Taitung: CaseName._courts.Judgment_V_D_Taitung,\r\n Judgment_V_D_Pingtung: CaseName._courts.Judgment_V_D_Pingtung,\r\n Judgment_V_D_Penghu: CaseName._courts.Judgment_V_D_Penghu,\r\n Judgment_V_D_Kinmen: CaseName._courts.Judgment_V_D_Kinmen,\r\n Judgment_V_D_Lienchiang: CaseName._courts.Judgment_V_D_Lienchiang,\r\n Judgment_V_D_Kaohsiung_Juvenile: CaseName._courts.Judgment_V_D_Kaohsiung_Juvenile,\r\n Judgment_V_H: CaseName._courts.Judgment_V_H,\r\n Judgment_V_H_Taichung: CaseName._courts.Judgment_V_H_Taichung,\r\n Judgment_V_H_Tainan: CaseName._courts.Judgment_V_H_Tainan,\r\n Judgment_V_H_Hualien: CaseName._courts.Judgment_V_H_Hualien,\r\n Judgment_V_H_Kaohsiung: CaseName._courts.Judgment_V_H_Kaohsiung,\r\n Judgment_V_H_Kinmen: CaseName._courts.Judgment_V_H_Kinmen,\r\n Judgment_V_S: CaseName._courts.Judgment_V_S,\r\n Judgment_V_I: CaseName._courts.Judgment_V_I,\r\n Judgment_M_D_Taipei: CaseName._courts.Judgment_M_D_Taipei,\r\n Judgment_M_D_Shihlin: CaseName._courts.Judgment_M_D_Shihlin,\r\n Judgment_M_D_New_Taipei: CaseName._courts.Judgment_M_D_New_Taipei,\r\n Judgment_M_D_Keelung: CaseName._courts.Judgment_M_D_Keelung,\r\n Judgment_M_D_Yilan: CaseName._courts.Judgment_M_D_Yilan,\r\n Judgment_M_D_Taoyuan: CaseName._courts.Judgment_M_D_Taoyuan,\r\n Judgment_M_D_Hsinchu: CaseName._courts.Judgment_M_D_Hsinchu,\r\n Judgment_M_D_Miaoli: CaseName._courts.Judgment_M_D_Miaoli,\r\n Judgment_M_D_Taichung: CaseName._courts.Judgment_M_D_Taichung,\r\n Judgment_M_D_Changhua: CaseName._courts.Judgment_M_D_Changhua,\r\n Judgment_M_D_Nantou: CaseName._courts.Judgment_M_D_Nantou,\r\n Judgment_M_D_Yunlin: CaseName._courts.Judgment_M_D_Yunlin,\r\n Judgment_M_D_Chiayi: CaseName._courts.Judgment_M_D_Chiayi,\r\n Judgment_M_D_Tainan: CaseName._courts.Judgment_M_D_Tainan,\r\n Judgment_M_D_Kaohsiung: CaseName._courts.Judgment_M_D_Kaohsiung,\r\n Judgment_M_D_Qiaotou: CaseName._courts.Judgment_M_D_Qiaotou,\r\n Judgment_M_D_Hualien: CaseName._courts.Judgment_M_D_Hualien,\r\n Judgment_M_D_Taitung: CaseName._courts.Judgment_M_D_Taitung,\r\n Judgment_M_D_Pingtung: CaseName._courts.Judgment_M_D_Pingtung,\r\n Judgment_M_D_Penghu: CaseName._courts.Judgment_M_D_Penghu,\r\n Judgment_M_D_Kinmen: CaseName._courts.Judgment_M_D_Kinmen,\r\n Judgment_M_D_Lienchiang: CaseName._courts.Judgment_M_D_Lienchiang,\r\n Judgment_M_H: CaseName._courts.Judgment_M_H,\r\n Judgment_M_H_Taichung: CaseName._courts.Judgment_M_H_Taichung,\r\n Judgment_M_H_Tainan: CaseName._courts.Judgment_M_H_Tainan,\r\n Judgment_M_H_Hualien: CaseName._courts.Judgment_M_H_Hualien,\r\n Judgment_M_H_Kaohsiung: CaseName._courts.Judgment_M_H_Kaohsiung,\r\n Judgment_M_H_Kinmen: CaseName._courts.Judgment_M_H_Kinmen,\r\n Judgment_M_S: CaseName._courts.Judgment_M_S,\r\n Judgment_M_I: CaseName._courts.Judgment_M_I,\r\n Judgment_A_D_Taipei: CaseName._courts.Judgment_A_D_Taipei,\r\n Judgment_A_D_Shihlin: CaseName._courts.Judgment_A_D_Shihlin,\r\n Judgment_A_D_New_Taipei: CaseName._courts.Judgment_A_D_New_Taipei,\r\n Judgment_A_D_Keelung: CaseName._courts.Judgment_A_D_Keelung,\r\n Judgment_A_D_Yilan: CaseName._courts.Judgment_A_D_Yilan,\r\n Judgment_A_D_Taoyuan: CaseName._courts.Judgment_A_D_Taoyuan,\r\n Judgment_A_D_Hsinchu: CaseName._courts.Judgment_A_D_Hsinchu,\r\n Judgment_A_D_Miaoli: CaseName._courts.Judgment_A_D_Miaoli,\r\n Judgment_A_D_Taichung: CaseName._courts.Judgment_A_D_Taichung,\r\n Judgment_A_D_Changhua: CaseName._courts.Judgment_A_D_Changhua,\r\n Judgment_A_D_Nantou: CaseName._courts.Judgment_A_D_Nantou,\r\n Judgment_A_D_Yunlin: CaseName._courts.Judgment_A_D_Yunlin,\r\n Judgment_A_D_Chiayi: CaseName._courts.Judgment_A_D_Chiayi,\r\n Judgment_A_D_Tainan: CaseName._courts.Judgment_A_D_Tainan,\r\n Judgment_A_D_Kaohsiung: CaseName._courts.Judgment_A_D_Kaohsiung,\r\n Judgment_A_D_Qiaotou: CaseName._courts.Judgment_A_D_Qiaotou,\r\n Judgment_A_D_Hualien: CaseName._courts.Judgment_A_D_Hualien,\r\n Judgment_A_D_Taitung: CaseName._courts.Judgment_A_D_Taitung,\r\n Judgment_A_D_Pingtung: CaseName._courts.Judgment_A_D_Pingtung,\r\n Judgment_A_D_Penghu: CaseName._courts.Judgment_A_D_Penghu,\r\n Judgment_A_D_Kinmen: CaseName._courts.Judgment_A_D_Kinmen,\r\n Judgment_A_D_Lienchiang: CaseName._courts.Judgment_A_D_Lienchiang,\r\n Judgment_A_H_Taipei: CaseName._courts.Judgment_A_H_Taipei,\r\n Judgment_A_H_Taichung: CaseName._courts.Judgment_A_H_Taichung,\r\n Judgment_A_H_Kaohsiung: CaseName._courts.Judgment_A_H_Kaohsiung,\r\n Judgment_A_S: CaseName._courts.Judgment_A_S,\r\n Judgment_A_I: CaseName._courts.Judgment_A_I,\r\n Judgment_O_P: CaseName._courts.Judgment_O_P,\r\n Judgment_O_C: CaseName._courts.Judgment_O_C,\r\n Judgment_O_J: CaseName._courts.Judgment_O_J,\r\n Judgment_In_D_Taipei: CaseName._courts.Judgment_In_D_Taipei,\r\n Judgment_In_D_Shihlin: CaseName._courts.Judgment_In_D_Shihlin,\r\n Judgment_In_D_New_Taipei: CaseName._courts.Judgment_In_D_New_Taipei,\r\n Judgment_In_D_Taoyuan: CaseName._courts.Judgment_In_D_Taoyuan,\r\n Judgment_In_D_Hsinchu: CaseName._courts.Judgment_In_D_Hsinchu,\r\n Judgment_In_D_Miaoli: CaseName._courts.Judgment_In_D_Miaoli,\r\n Judgment_In_D_Taichung: CaseName._courts.Judgment_In_D_Taichung,\r\n Judgment_In_D_Changhua: CaseName._courts.Judgment_In_D_Changhua,\r\n Judgment_In_D_Nantou: CaseName._courts.Judgment_In_D_Nantou,\r\n Judgment_In_D_Yunlin: CaseName._courts.Judgment_In_D_Yunlin,\r\n Judgment_In_D_Chiayi: CaseName._courts.Judgment_In_D_Chiayi,\r\n Judgment_In_D_Tainan: CaseName._courts.Judgment_In_D_Tainan,\r\n Judgment_In_D_Kaohsiung: CaseName._courts.Judgment_In_D_Kaohsiung,\r\n Judgment_In_D_Qiaotou: CaseName._courts.Judgment_In_D_Qiaotou,\r\n Judgment_In_D_Pingtung: CaseName._courts.Judgment_In_D_Pingtung,\r\n Judgment_In_D_Taitung: CaseName._courts.Judgment_In_D_Taitung,\r\n Judgment_In_D_Hualien: CaseName._courts.Judgment_In_D_Hualien,\r\n Judgment_In_D_Yilan: CaseName._courts.Judgment_In_D_Yilan,\r\n Judgment_In_D_Keelung: CaseName._courts.Judgment_In_D_Keelung,\r\n Judgment_In_D_Penghu: CaseName._courts.Judgment_In_D_Penghu,\r\n Judgment_In_D_Kinmen: CaseName._courts.Judgment_In_D_Kinmen,\r\n Judgment_In_D_Lienchiang: CaseName._courts.Judgment_In_D_Lienchiang,\r\n Judgment_In_H: CaseName._courts.Judgment_In_H,\r\n Judgment_In_H_Taichung: CaseName._courts.Judgment_In_H_Taichung,\r\n Judgment_In_H_Tainan: CaseName._courts.Judgment_In_H_Tainan,\r\n Judgment_In_H_Kaohsiung: CaseName._courts.Judgment_In_H_Kaohsiung,\r\n Judgment_In_H_Hualien: CaseName._courts.Judgment_In_H_Hualien,\r\n Judgment_In_H_Kinmen: CaseName._courts.Judgment_In_H_Kinmen,\r\n\r\n V_D_Taipei: CaseName._courts.Judgment_V_D_Taipei,\r\n V_D_Shihlin: CaseName._courts.Judgment_V_D_Shihlin,\r\n V_D_New_Taipei: CaseName._courts.Judgment_V_D_New_Taipei,\r\n V_D_Keelung: CaseName._courts.Judgment_V_D_Keelung,\r\n V_D_Yilan: CaseName._courts.Judgment_V_D_Yilan,\r\n V_D_Taoyuan: CaseName._courts.Judgment_V_D_Taoyuan,\r\n V_D_Hsinchu: CaseName._courts.Judgment_V_D_Hsinchu,\r\n V_D_Miaoli: CaseName._courts.Judgment_V_D_Miaoli,\r\n V_D_Taichung: CaseName._courts.Judgment_V_D_Taichung,\r\n V_D_Changhua: CaseName._courts.Judgment_V_D_Changhua,\r\n V_D_Nantou: CaseName._courts.Judgment_V_D_Nantou,\r\n V_D_Yunlin: CaseName._courts.Judgment_V_D_Yunlin,\r\n V_D_Chiayi: CaseName._courts.Judgment_V_D_Chiayi,\r\n V_D_Tainan: CaseName._courts.Judgment_V_D_Tainan,\r\n V_D_Kaohsiung: CaseName._courts.Judgment_V_D_Kaohsiung,\r\n V_D_Qiaotou: CaseName._courts.Judgment_V_D_Qiaotou,\r\n V_D_Hualien: CaseName._courts.Judgment_V_D_Hualien,\r\n V_D_Taitung: CaseName._courts.Judgment_V_D_Taitung,\r\n V_D_Pingtung: CaseName._courts.Judgment_V_D_Pingtung,\r\n V_D_Penghu: CaseName._courts.Judgment_V_D_Penghu,\r\n V_D_Kinmen: CaseName._courts.Judgment_V_D_Kinmen,\r\n V_D_Lienchiang: CaseName._courts.Judgment_V_D_Lienchiang,\r\n V_D_Kaohsiung_Juvenile: CaseName._courts.Judgment_V_D_Kaohsiung_Juvenile,\r\n V_H: CaseName._courts.Judgment_V_H,\r\n V_H_Taichung: CaseName._courts.Judgment_V_H_Taichung,\r\n V_H_Tainan: CaseName._courts.Judgment_V_H_Tainan,\r\n V_H_Hualien: CaseName._courts.Judgment_V_H_Hualien,\r\n V_H_Kaohsiung: CaseName._courts.Judgment_V_H_Kaohsiung,\r\n V_H_Kinmen: CaseName._courts.Judgment_V_H_Kinmen,\r\n V_S: CaseName._courts.Judgment_V_S,\r\n V_I: CaseName._courts.Judgment_V_I,\r\n M_D_Taipei: CaseName._courts.Judgment_M_D_Taipei,\r\n M_D_Shihlin: CaseName._courts.Judgment_M_D_Shihlin,\r\n M_D_New_Taipei: CaseName._courts.Judgment_M_D_New_Taipei,\r\n M_D_Keelung: CaseName._courts.Judgment_M_D_Keelung,\r\n M_D_Yilan: CaseName._courts.Judgment_M_D_Yilan,\r\n M_D_Taoyuan: CaseName._courts.Judgment_M_D_Taoyuan,\r\n M_D_Hsinchu: CaseName._courts.Judgment_M_D_Hsinchu,\r\n M_D_Miaoli: CaseName._courts.Judgment_M_D_Miaoli,\r\n M_D_Taichung: CaseName._courts.Judgment_M_D_Taichung,\r\n M_D_Changhua: CaseName._courts.Judgment_M_D_Changhua,\r\n M_D_Nantou: CaseName._courts.Judgment_M_D_Nantou,\r\n M_D_Yunlin: CaseName._courts.Judgment_M_D_Yunlin,\r\n M_D_Chiayi: CaseName._courts.Judgment_M_D_Chiayi,\r\n M_D_Tainan: CaseName._courts.Judgment_M_D_Tainan,\r\n M_D_Kaohsiung: CaseName._courts.Judgment_M_D_Kaohsiung,\r\n M_D_Qiaotou: CaseName._courts.Judgment_M_D_Qiaotou,\r\n M_D_Hualien: CaseName._courts.Judgment_M_D_Hualien,\r\n M_D_Taitung: CaseName._courts.Judgment_M_D_Taitung,\r\n M_D_Pingtung: CaseName._courts.Judgment_M_D_Pingtung,\r\n M_D_Penghu: CaseName._courts.Judgment_M_D_Penghu,\r\n M_D_Kinmen: CaseName._courts.Judgment_M_D_Kinmen,\r\n M_D_Lienchiang: CaseName._courts.Judgment_M_D_Lienchiang,\r\n M_H: CaseName._courts.Judgment_M_H,\r\n M_H_Taichung: CaseName._courts.Judgment_M_H_Taichung,\r\n M_H_Tainan: CaseName._courts.Judgment_M_H_Tainan,\r\n M_H_Hualien: CaseName._courts.Judgment_M_H_Hualien,\r\n M_H_Kaohsiung: CaseName._courts.Judgment_M_H_Kaohsiung,\r\n M_H_Kinmen: CaseName._courts.Judgment_M_H_Kinmen,\r\n M_S: CaseName._courts.Judgment_M_S,\r\n M_I: CaseName._courts.Judgment_M_I,\r\n A_D_Taipei: CaseName._courts.Judgment_A_D_Taipei,\r\n A_D_Shihlin: CaseName._courts.Judgment_A_D_Shihlin,\r\n A_D_New_Taipei: CaseName._courts.Judgment_A_D_New_Taipei,\r\n A_D_Keelung: CaseName._courts.Judgment_A_D_Keelung,\r\n A_D_Yilan: CaseName._courts.Judgment_A_D_Yilan,\r\n A_D_Taoyuan: CaseName._courts.Judgment_A_D_Taoyuan,\r\n A_D_Hsinchu: CaseName._courts.Judgment_A_D_Hsinchu,\r\n A_D_Miaoli: CaseName._courts.Judgment_A_D_Miaoli,\r\n A_D_Taichung: CaseName._courts.Judgment_A_D_Taichung,\r\n A_D_Changhua: CaseName._courts.Judgment_A_D_Changhua,\r\n A_D_Nantou: CaseName._courts.Judgment_A_D_Nantou,\r\n A_D_Yunlin: CaseName._courts.Judgment_A_D_Yunlin,\r\n A_D_Chiayi: CaseName._courts.Judgment_A_D_Chiayi,\r\n A_D_Tainan: CaseName._courts.Judgment_A_D_Tainan,\r\n A_D_Kaohsiung: CaseName._courts.Judgment_A_D_Kaohsiung,\r\n A_D_Qiaotou: CaseName._courts.Judgment_A_D_Qiaotou,\r\n A_D_Hualien: CaseName._courts.Judgment_A_D_Hualien,\r\n A_D_Taitung: CaseName._courts.Judgment_A_D_Taitung,\r\n A_D_Pingtung: CaseName._courts.Judgment_A_D_Pingtung,\r\n A_D_Penghu: CaseName._courts.Judgment_A_D_Penghu,\r\n A_D_Kinmen: CaseName._courts.Judgment_A_D_Kinmen,\r\n A_D_Lienchiang: CaseName._courts.Judgment_A_D_Lienchiang,\r\n A_H_Taipei: CaseName._courts.Judgment_A_H_Taipei,\r\n A_H_Taichung: CaseName._courts.Judgment_A_H_Taichung,\r\n A_H_Kaohsiung: CaseName._courts.Judgment_A_H_Kaohsiung,\r\n A_S: CaseName._courts.Judgment_A_S,\r\n A_I: CaseName._courts.Judgment_A_I,\r\n O_P: CaseName._courts.Judgment_O_P,\r\n O_C: CaseName._courts.Judgment_O_C,\r\n O_J: CaseName._courts.Judgment_O_J,\r\n In_D_Taipei: CaseName._courts.Judgment_In_D_Taipei,\r\n In_D_Shihlin: CaseName._courts.Judgment_In_D_Shihlin,\r\n In_D_New_Taipei: CaseName._courts.Judgment_In_D_New_Taipei,\r\n In_D_Taoyuan: CaseName._courts.Judgment_In_D_Taoyuan,\r\n In_D_Hsinchu: CaseName._courts.Judgment_In_D_Hsinchu,\r\n In_D_Miaoli: CaseName._courts.Judgment_In_D_Miaoli,\r\n In_D_Taichung: CaseName._courts.Judgment_In_D_Taichung,\r\n In_D_Changhua: CaseName._courts.Judgment_In_D_Changhua,\r\n In_D_Nantou: CaseName._courts.Judgment_In_D_Nantou,\r\n In_D_Yunlin: CaseName._courts.Judgment_In_D_Yunlin,\r\n In_D_Chiayi: CaseName._courts.Judgment_In_D_Chiayi,\r\n In_D_Tainan: CaseName._courts.Judgment_In_D_Tainan,\r\n In_D_Kaohsiung: CaseName._courts.Judgment_In_D_Kaohsiung,\r\n In_D_Qiaotou: CaseName._courts.Judgment_In_D_Qiaotou,\r\n In_D_Pingtung: CaseName._courts.Judgment_In_D_Pingtung,\r\n In_D_Taitung: CaseName._courts.Judgment_In_D_Taitung,\r\n In_D_Hualien: CaseName._courts.Judgment_In_D_Hualien,\r\n In_D_Yilan: CaseName._courts.Judgment_In_D_Yilan,\r\n In_D_Keelung: CaseName._courts.Judgment_In_D_Keelung,\r\n In_D_Penghu: CaseName._courts.Judgment_In_D_Penghu,\r\n In_D_Kinmen: CaseName._courts.Judgment_In_D_Kinmen,\r\n In_D_Lienchiang: CaseName._courts.Judgment_In_D_Lienchiang,\r\n In_H: CaseName._courts.Judgment_In_H,\r\n In_H_Taichung: CaseName._courts.Judgment_In_H_Taichung,\r\n In_H_Tainan: CaseName._courts.Judgment_In_H_Tainan,\r\n In_H_Kaohsiung: CaseName._courts.Judgment_In_H_Kaohsiung,\r\n In_H_Hualien: CaseName._courts.Judgment_In_H_Hualien,\r\n In_H_Kinmen: CaseName._courts.Judgment_In_H_Kinmen,\r\n }\r\n static courtList: Court[] = [\r\n CaseName.courts.JudicialInterpret_xftype38,\r\n CaseName.courts.JudicialInterpret_xftype39,\r\n CaseName.courts.JudicialInterpret_xftype40,\r\n CaseName.courts.JudicialInterpret_ctypeABC,\r\n CaseName.courts.JudicialInterpret_ctypeD,\r\n CaseName.courts.JudicialInterpret_ttypeX,\r\n CaseName.courts.JudicialInterpret_jtype21gc1m134,\r\n CaseName.courts.JudicialInterpret_jtype22gc2m1342,\r\n CaseName.courts.JudicialInterpret_jtype23gc3m134,\r\n CaseName.courts.JudicialInterpret_jtypeA,\r\n CaseName.courts.JudicialInterpret_jtypeB,\r\n CaseName.courts.JudicialInterpret_jtypeE,\r\n CaseName.courts.JudicialInterpret_jtype1A,\r\n CaseName.courts.JudicialInterpret_jtype1B,\r\n CaseName.courts.JudicialInterpret_jtype1E,\r\n CaseName.courts.JudicialInterpret_jtypeI,\r\n CaseName.courts.JudicialInterpret_jtypeG,\r\n CaseName.courts.JudicialInterpret_jtypeC01,\r\n CaseName.courts.JudicialInterpret_jtypeO,\r\n CaseName.courts.JudicialInterpret_jtypeJ,\r\n CaseName.courts.JudicialInterpret_jtypeH,\r\n CaseName.courts.JudicialInterpret_jtypeD01,\r\n CaseName.courts.JudicialInterpret_jtypeP,\r\n CaseName.courts.JudicialInterpret_jtypeR,\r\n CaseName.courts.JudicialInterpret_jtypeK,\r\n CaseName.courts.JudicialInterpret_jtypeF01,\r\n CaseName.courts.JudicialInterpret_jtypeQ,\r\n CaseName.courts.JudicialInterpret_jtypeU,\r\n CaseName.courts.JudicialInterpret_jtypeV,\r\n CaseName.courts.JudicialInterpret_jtypeS,\r\n CaseName.courts.JudicialInterpret_jtypeT,\r\n CaseName.courts.JudicialInterpret_dtypeA01,\r\n CaseName.courts.JudicialInterpret_dtypeB01,\r\n CaseName.courts.JudicialInterpret_dtypeC01,\r\n CaseName.courts.JudicialInterpret_jtypeL,\r\n CaseName.courts.JudicialInterpret_qtypeA,\r\n CaseName.courts.JudicialInterpret_qtypeG,\r\n CaseName.courts.JudicialInterpret_qtypeB,\r\n CaseName.courts.JudicialInterpret_qtypeC,\r\n CaseName.courts.JudicialInterpret_qtypeD,\r\n CaseName.courts.JudicialInterpret_etypeX01,\r\n\r\n CaseName.courts.LawRule_Now_Name,\r\n CaseName.courts.LawRule_Now_Fulltext,\r\n CaseName.courts.LawRule_Repeal_Name,\r\n CaseName.courts.LawRule_Repeal_Fulltext,\r\n CaseName.courts.LawRule_Stop_Name,\r\n CaseName.courts.LawRule_Stop_Fulltext,\r\n\r\n CaseName.courts.Judgment_V_D_Taipei,\r\n CaseName.courts.Judgment_V_D_Shihlin,\r\n CaseName.courts.Judgment_V_D_New_Taipei,\r\n CaseName.courts.Judgment_V_D_Keelung,\r\n CaseName.courts.Judgment_V_D_Yilan,\r\n CaseName.courts.Judgment_V_D_Taoyuan,\r\n CaseName.courts.Judgment_V_D_Hsinchu,\r\n CaseName.courts.Judgment_V_D_Miaoli,\r\n CaseName.courts.Judgment_V_D_Taichung,\r\n CaseName.courts.Judgment_V_D_Changhua,\r\n CaseName.courts.Judgment_V_D_Nantou,\r\n CaseName.courts.Judgment_V_D_Yunlin,\r\n CaseName.courts.Judgment_V_D_Chiayi,\r\n CaseName.courts.Judgment_V_D_Tainan,\r\n CaseName.courts.Judgment_V_D_Kaohsiung,\r\n CaseName.courts.Judgment_V_D_Qiaotou,\r\n CaseName.courts.Judgment_V_D_Hualien,\r\n CaseName.courts.Judgment_V_D_Taitung,\r\n CaseName.courts.Judgment_V_D_Pingtung,\r\n CaseName.courts.Judgment_V_D_Penghu,\r\n CaseName.courts.Judgment_V_D_Kinmen,\r\n CaseName.courts.Judgment_V_D_Lienchiang,\r\n CaseName.courts.Judgment_V_D_Kaohsiung_Juvenile,\r\n CaseName.courts.Judgment_V_H,\r\n CaseName.courts.Judgment_V_H_Taichung,\r\n CaseName.courts.Judgment_V_H_Tainan,\r\n CaseName.courts.Judgment_V_H_Hualien,\r\n CaseName.courts.Judgment_V_H_Kaohsiung,\r\n CaseName.courts.Judgment_V_H_Kinmen,\r\n CaseName.courts.Judgment_V_S,\r\n CaseName.courts.Judgment_V_I,\r\n CaseName.courts.Judgment_M_D_Taipei,\r\n CaseName.courts.Judgment_M_D_Shihlin,\r\n CaseName.courts.Judgment_M_D_New_Taipei,\r\n CaseName.courts.Judgment_M_D_Keelung,\r\n CaseName.courts.Judgment_M_D_Yilan,\r\n CaseName.courts.Judgment_M_D_Taoyuan,\r\n CaseName.courts.Judgment_M_D_Hsinchu,\r\n CaseName.courts.Judgment_M_D_Miaoli,\r\n CaseName.courts.Judgment_M_D_Taichung,\r\n CaseName.courts.Judgment_M_D_Changhua,\r\n CaseName.courts.Judgment_M_D_Nantou,\r\n CaseName.courts.Judgment_M_D_Yunlin,\r\n CaseName.courts.Judgment_M_D_Chiayi,\r\n CaseName.courts.Judgment_M_D_Tainan,\r\n CaseName.courts.Judgment_M_D_Kaohsiung,\r\n CaseName.courts.Judgment_M_D_Qiaotou,\r\n CaseName.courts.Judgment_M_D_Hualien,\r\n CaseName.courts.Judgment_M_D_Taitung,\r\n CaseName.courts.Judgment_M_D_Pingtung,\r\n CaseName.courts.Judgment_M_D_Penghu,\r\n CaseName.courts.Judgment_M_D_Kinmen,\r\n CaseName.courts.Judgment_M_D_Lienchiang,\r\n CaseName.courts.Judgment_M_H,\r\n CaseName.courts.Judgment_M_H_Taichung,\r\n CaseName.courts.Judgment_M_H_Tainan,\r\n CaseName.courts.Judgment_M_H_Hualien,\r\n CaseName.courts.Judgment_M_H_Kaohsiung,\r\n CaseName.courts.Judgment_M_H_Kinmen,\r\n CaseName.courts.Judgment_M_S,\r\n CaseName.courts.Judgment_M_I,\r\n CaseName.courts.Judgment_A_D_Taipei,\r\n CaseName.courts.Judgment_A_D_Shihlin,\r\n CaseName.courts.Judgment_A_D_New_Taipei,\r\n CaseName.courts.Judgment_A_D_Keelung,\r\n CaseName.courts.Judgment_A_D_Yilan,\r\n CaseName.courts.Judgment_A_D_Taoyuan,\r\n CaseName.courts.Judgment_A_D_Hsinchu,\r\n CaseName.courts.Judgment_A_D_Miaoli,\r\n CaseName.courts.Judgment_A_D_Taichung,\r\n CaseName.courts.Judgment_A_D_Changhua,\r\n CaseName.courts.Judgment_A_D_Nantou,\r\n CaseName.courts.Judgment_A_D_Yunlin,\r\n CaseName.courts.Judgment_A_D_Chiayi,\r\n CaseName.courts.Judgment_A_D_Tainan,\r\n CaseName.courts.Judgment_A_D_Kaohsiung,\r\n CaseName.courts.Judgment_A_D_Qiaotou,\r\n CaseName.courts.Judgment_A_D_Hualien,\r\n CaseName.courts.Judgment_A_D_Taitung,\r\n CaseName.courts.Judgment_A_D_Pingtung,\r\n CaseName.courts.Judgment_A_D_Penghu,\r\n CaseName.courts.Judgment_A_D_Kinmen,\r\n CaseName.courts.Judgment_A_D_Lienchiang,\r\n CaseName.courts.Judgment_A_H_Taipei,\r\n CaseName.courts.Judgment_A_H_Taichung,\r\n CaseName.courts.Judgment_A_H_Kaohsiung,\r\n CaseName.courts.Judgment_A_S,\r\n CaseName.courts.Judgment_A_I,\r\n CaseName.courts.Judgment_O_P,\r\n CaseName.courts.Judgment_O_C,\r\n CaseName.courts.Judgment_O_J,\r\n\r\n CaseName.courts.Judgment_In_D_Taipei,\r\n CaseName.courts.Judgment_In_D_Shihlin,\r\n CaseName.courts.Judgment_In_D_New_Taipei,\r\n CaseName.courts.Judgment_In_D_Taoyuan,\r\n CaseName.courts.Judgment_In_D_Hsinchu,\r\n CaseName.courts.Judgment_In_D_Miaoli,\r\n CaseName.courts.Judgment_In_D_Taichung,\r\n CaseName.courts.Judgment_In_D_Changhua,\r\n CaseName.courts.Judgment_In_D_Nantou,\r\n CaseName.courts.Judgment_In_D_Yunlin,\r\n CaseName.courts.Judgment_In_D_Chiayi,\r\n CaseName.courts.Judgment_In_D_Tainan,\r\n CaseName.courts.Judgment_In_D_Kaohsiung,\r\n CaseName.courts.Judgment_In_D_Qiaotou,\r\n CaseName.courts.Judgment_In_D_Pingtung,\r\n CaseName.courts.Judgment_In_D_Taitung,\r\n CaseName.courts.Judgment_In_D_Hualien,\r\n CaseName.courts.Judgment_In_D_Yilan,\r\n CaseName.courts.Judgment_In_D_Keelung,\r\n CaseName.courts.Judgment_In_D_Penghu,\r\n CaseName.courts.Judgment_In_D_Kinmen,\r\n CaseName.courts.Judgment_In_D_Lienchiang,\r\n CaseName.courts.Judgment_In_H,\r\n CaseName.courts.Judgment_In_H_Taichung,\r\n CaseName.courts.Judgment_In_H_Tainan,\r\n CaseName.courts.Judgment_In_H_Kaohsiung,\r\n CaseName.courts.Judgment_In_H_Hualien,\r\n CaseName.courts.Judgment_In_H_Kinmen,\r\n ];\r\n static courtBlocks = {\r\n JudicialInterpret_Court_Court: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_Court,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '司法院',\r\n result_name: '司法院',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Court_BigJudge: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_BigJudge,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '大法官',\r\n result_name: '大法官',\r\n icon: 'icon/court-green.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Court_Reject: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_Reject,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '不受理',\r\n result_name: '不受理',\r\n icon: 'icon/court-red.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Court_XF: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Court_XF,\r\n court_type_id: CourtTypeId.JudicialInterpret_Court,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '憲法法庭',\r\n result_name: '憲法法庭',\r\n icon: 'icon/court-yellow.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Grand_Normal: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Grand_Normal,\r\n court_type_id: CourtTypeId.JudicialInterpret_Grand,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '大法庭',\r\n result_name: '大法庭',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Precedent_Normal: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Precedent_Normal,\r\n court_type_id: CourtTypeId.JudicialInterpret_Precedent,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '一般',\r\n result_name: '一般',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Precedent_Stop: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Precedent_Stop,\r\n court_type_id: CourtTypeId.JudicialInterpret_Precedent,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '停止適用',\r\n result_name: '停止適用',\r\n icon: 'icon/court-red.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Judgment_V: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '民事',\r\n result_name: '民事',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Judgment_M: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_M,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '刑事',\r\n result_name: '刑事',\r\n icon: 'icon/court-green.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Judgment_A: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_A,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '行政',\r\n result_name: '行政',\r\n icon: 'icon/court-red.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Judgment_SupremeReference: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_SupremeReference,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '最高法院 - 具有參考價值的裁判',\r\n result_name: '最高法院 - 具有參考價值的裁判',\r\n icon: 'icon/court-yellow.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Judgment_HighReference: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Judgment_HighReference,\r\n court_type_id: CourtTypeId.JudicialInterpret_Judgment,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '高等法院及所屬法院 - \\n具有參考價值的裁判',\r\n result_name: '高等法院及所屬法院 - \\n具有參考價值的裁判',\r\n icon: 'icon/court-purple.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Resolution_V: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Resolution_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Resolution,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '民事',\r\n result_name: '民事',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Resolution_M: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Resolution_M,\r\n court_type_id: CourtTypeId.JudicialInterpret_Resolution,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '刑事',\r\n result_name: '刑事',\r\n icon: 'icon/court-green.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Resolution_A: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Resolution_A,\r\n court_type_id: CourtTypeId.JudicialInterpret_Resolution,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '行政',\r\n result_name: '行政',\r\n icon: 'icon/court-red.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Discipline_Discipline: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Discipline_Discipline,\r\n court_type_id: CourtTypeId.JudicialInterpret_Discipline,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '公懲法院',\r\n result_name: '公懲法院',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Seminar_V: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Seminar_V,\r\n court_type_id: CourtTypeId.JudicialInterpret_Seminar,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '民事',\r\n result_name: '民事',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Seminar_M: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Seminar_M,\r\n court_type_id: CourtTypeId.JudicialInterpret_Seminar,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '刑事',\r\n result_name: '刑事',\r\n icon: 'icon/court-green.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Seminar_A: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Seminar_A,\r\n court_type_id: CourtTypeId.JudicialInterpret_Seminar,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '行政',\r\n result_name: '行政',\r\n icon: 'icon/court-red.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Seminar_Discipline: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Seminar_Discipline,\r\n court_type_id: CourtTypeId.JudicialInterpret_Seminar,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '公懲',\r\n result_name: '公懲',\r\n icon: 'icon/court-purple.png',\r\n class_name: ''\r\n }),\r\n JudicialInterpret_Execute_Execute: CourtBlock.create2({\r\n court_block_id: CourtBlockId.JudicialInterpret_Execute_Execute,\r\n court_type_id: CourtTypeId.JudicialInterpret_Execute,\r\n case_type_id: CaseTypeId.JudicialInterpret,\r\n condition_name: '行政函令',\r\n result_name: '行政函令',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n LawRule_Now: CourtBlock.create2({\r\n court_block_id: CourtBlockId.LawRule_Now,\r\n court_type_id: CourtTypeId.LawRule,\r\n case_type_id: CaseTypeId.LawRule,\r\n condition_name: '法規',\r\n result_name: '現行法',\r\n icon: '',\r\n class_name: ''\r\n }),\r\n LawRule_Repeal: CourtBlock.create2({\r\n court_block_id: CourtBlockId.LawRule_Repeal,\r\n court_type_id: CourtTypeId.LawRule,\r\n case_type_id: CaseTypeId.LawRule,\r\n condition_name: '法規',\r\n result_name: '廢止法',\r\n icon: '',\r\n class_name: ''\r\n }),\r\n LawRule_Stop: CourtBlock.create2({\r\n court_block_id: CourtBlockId.LawRule_Stop,\r\n court_type_id: CourtTypeId.LawRule,\r\n case_type_id: CaseTypeId.LawRule,\r\n condition_name: '法規',\r\n result_name: '經停用',\r\n icon: '',\r\n class_name: ''\r\n }),\r\n Judgment_Civil_Local: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Civil_Local,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '地方法院',\r\n result_name: '地方法院',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n Judgment_Civil_High: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Civil_High,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高等法院',\r\n result_name: '高等法院',\r\n icon: 'icon/court-green.png',\r\n class_name: ''\r\n }),\r\n Judgment_Civil_Supreme: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Civil_Supreme,\r\n court_type_id: CourtTypeId.Judgment_Civil,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '最高法院',\r\n result_name: '最高法院',\r\n icon: 'icon/court-red.png',\r\n class_name: ''\r\n }),\r\n Judgment_Intellectual: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Intellectual,\r\n court_type_id: CourtTypeId.Judgment_Intellectual,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '智慧財產法院',\r\n result_name: '智慧財產法院',\r\n icon: 'icon/court-purple.png',\r\n class_name: ''\r\n }),\r\n Judgment_Criminal_Local: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Criminal_Local,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '地方法院',\r\n result_name: '地方法院',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n Judgment_Criminal_High: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Criminal_High,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高等法院',\r\n result_name: '高等法院',\r\n icon: 'icon/court-green.png',\r\n class_name: ''\r\n }),\r\n Judgment_Criminal_Supreme: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Criminal_Supreme,\r\n court_type_id: CourtTypeId.Judgment_Criminal,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '最高法院',\r\n result_name: '最高法院',\r\n icon: 'icon/court-red.png',\r\n class_name: ''\r\n }),\r\n Judgment_Administrative_Local: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Administrative_Local,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '地方法院',\r\n result_name: '地方法院',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n Judgment_Administrative_High: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Administrative_High,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '高等法院',\r\n result_name: '高等法院',\r\n icon: 'icon/court-green.png',\r\n class_name: ''\r\n }),\r\n Judgment_Administrative_Supreme: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Administrative_Supreme,\r\n court_type_id: CourtTypeId.Judgment_Administrative,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '最高法院',\r\n result_name: '最高法院',\r\n icon: 'icon/court-red.png',\r\n class_name: ''\r\n }),\r\n Judgment_Other_Discipline: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Other_Discipline,\r\n court_type_id: CourtTypeId.Judgment_Other,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '公懲會',\r\n result_name: '公懲會',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n Judgment_Other_Criminal: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Other_Criminal,\r\n court_type_id: CourtTypeId.Judgment_Other,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '刑事補償',\r\n result_name: '刑事補償',\r\n icon: 'icon/court-green.png',\r\n class_name: ''\r\n }),\r\n Judgment_Other_Court: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Other_Court,\r\n court_type_id: CourtTypeId.Judgment_Other,\r\n case_type_id: CaseTypeId.Judgment,\r\n condition_name: '監察院移送',\r\n result_name: '監察院移送',\r\n icon: 'icon/court-red.png',\r\n class_name: ''\r\n }),\r\n Judgment_Indictment_Local: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Indictment_Local,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '地方檢察署',\r\n result_name: '地方檢察署',\r\n icon: 'icon/court-blue.png',\r\n class_name: ''\r\n }),\r\n Judgment_Indictment_High: CourtBlock.create2({\r\n court_block_id: CourtBlockId.Judgment_Indictment_High,\r\n court_type_id: CourtTypeId.Judgment_Indictment,\r\n case_type_id: CaseTypeId.Indictment,\r\n condition_name: '高等檢察署',\r\n result_name: '高等檢察署',\r\n icon: 'icon/court-green.png',\r\n class_name: ''\r\n }),\r\n }\r\n static courtBlockList: CourtBlock[] = [\r\n CaseName.courtBlocks.JudicialInterpret_Court_XF,\r\n CaseName.courtBlocks.JudicialInterpret_Court_Court,\r\n CaseName.courtBlocks.JudicialInterpret_Court_BigJudge,\r\n CaseName.courtBlocks.JudicialInterpret_Court_Reject,\r\n CaseName.courtBlocks.JudicialInterpret_Grand_Normal,\r\n CaseName.courtBlocks.JudicialInterpret_Precedent_Normal,\r\n CaseName.courtBlocks.JudicialInterpret_Precedent_Stop,\r\n CaseName.courtBlocks.JudicialInterpret_Judgment_V,\r\n CaseName.courtBlocks.JudicialInterpret_Judgment_M,\r\n CaseName.courtBlocks.JudicialInterpret_Judgment_A,\r\n CaseName.courtBlocks.JudicialInterpret_Judgment_SupremeReference,\r\n CaseName.courtBlocks.JudicialInterpret_Judgment_HighReference,\r\n CaseName.courtBlocks.JudicialInterpret_Resolution_V,\r\n CaseName.courtBlocks.JudicialInterpret_Resolution_M,\r\n CaseName.courtBlocks.JudicialInterpret_Resolution_A,\r\n CaseName.courtBlocks.JudicialInterpret_Discipline_Discipline,\r\n CaseName.courtBlocks.JudicialInterpret_Seminar_V,\r\n CaseName.courtBlocks.JudicialInterpret_Seminar_M,\r\n CaseName.courtBlocks.JudicialInterpret_Seminar_A,\r\n CaseName.courtBlocks.JudicialInterpret_Seminar_Discipline,\r\n CaseName.courtBlocks.JudicialInterpret_Execute_Execute,\r\n\r\n CaseName.courtBlocks.LawRule_Now,\r\n CaseName.courtBlocks.LawRule_Repeal,\r\n CaseName.courtBlocks.LawRule_Stop,\r\n\r\n CaseName.courtBlocks.Judgment_Civil_Local,\r\n CaseName.courtBlocks.Judgment_Civil_High,\r\n CaseName.courtBlocks.Judgment_Civil_Supreme,\r\n // CaseName.courtBlocks.Judgment_Intellectual,\r\n CaseName.courtBlocks.Judgment_Criminal_Local,\r\n CaseName.courtBlocks.Judgment_Criminal_High,\r\n CaseName.courtBlocks.Judgment_Criminal_Supreme,\r\n // CaseName.courtBlocks.Judgment_Intellectual,\r\n CaseName.courtBlocks.Judgment_Administrative_Local,\r\n CaseName.courtBlocks.Judgment_Administrative_High,\r\n CaseName.courtBlocks.Judgment_Administrative_Supreme,\r\n CaseName.courtBlocks.Judgment_Intellectual,\r\n CaseName.courtBlocks.Judgment_Other_Discipline,\r\n CaseName.courtBlocks.Judgment_Other_Criminal,\r\n CaseName.courtBlocks.Judgment_Other_Court,\r\n\r\n CaseName.courtBlocks.Judgment_Indictment_Local,\r\n CaseName.courtBlocks.Judgment_Indictment_High,\r\n ];\r\n static courtTypeList: CourtType[] = [\r\n CourtType.create(CourtTypeId.JudicialInterpret_Court, CaseTypeId.JudicialInterpret, '司法院', '司法院', 'court.png', 'court_selected.png', 'judicial-interpret-court'),\r\n CourtType.create(CourtTypeId.JudicialInterpret_Grand, CaseTypeId.JudicialInterpret, '大法庭', '大法庭', 'precedent.png', 'precedent_selected.png', 'judicial-interpret-grand'),\r\n CourtType.create(CourtTypeId.JudicialInterpret_Precedent, CaseTypeId.JudicialInterpret, '判例', '判例', 'precedent.png', 'precedent_selected.png', 'judicial-interpret-precedent'),\r\n CourtType.create(CourtTypeId.JudicialInterpret_Judgment, CaseTypeId.JudicialInterpret, '精選裁判', '精選裁判', 'resolution.png', 'resolution_selected.png', 'judicial-interpret-judgment'),\r\n CourtType.create(CourtTypeId.JudicialInterpret_Resolution, CaseTypeId.JudicialInterpret, '決議', '決議', 'judgment.png', 'judgment_selected.png', 'judicial-interpret-resolution'),\r\n CourtType.create(CourtTypeId.JudicialInterpret_Discipline, CaseTypeId.JudicialInterpret, '公懲', '公懲', 'discipline.png', 'discipline_selected.png', 'judicial-interpret-discipline'),\r\n CourtType.create(CourtTypeId.JudicialInterpret_Seminar, CaseTypeId.JudicialInterpret, '座談會', '座談會', 'seminar.png', 'seminar_selected.png', 'judicial-interpret-seminar'),\r\n CourtType.create(CourtTypeId.JudicialInterpret_Execute, CaseTypeId.JudicialInterpret, '行政函令', '行政函令', 'execute.png', 'execute_selected.png', 'judicial-interpret-execute'),\r\n CourtType.create(CourtTypeId.LawRule, CaseTypeId.LawRule, '法規', '法規', 'law_rule.png', 'law_rule_selected.png', 'law-rule'),\r\n CourtType.create(CourtTypeId.Judgment_Civil, CaseTypeId.Judgment, '民事', '民事', 'civil.png', 'civil_selected.png', 'judgment-civil'),\r\n CourtType.create(CourtTypeId.Judgment_Criminal, CaseTypeId.Judgment, '刑事', '刑事', 'criminal.png', 'criminal_selected.png', 'judgment-criminal'),\r\n CourtType.create(CourtTypeId.Judgment_Administrative, CaseTypeId.Judgment, '行政', '行政', 'administrative.png', 'administrative_selected.png', 'judgment-administrative'),\r\n CourtType.create(CourtTypeId.Judgment_Intellectual, CaseTypeId.Judgment, '智財', '智財', 'intellectual.png', 'intellectual_selected.png', 'judgment-intellectual'),\r\n CourtType.create(CourtTypeId.Judgment_Other, CaseTypeId.Judgment, '其他', '其他', 'other.png', 'other_selected.png', 'judgment-other'),\r\n CourtType.create(CourtTypeId.Judgment_Indictment, CaseTypeId.Indictment, '起訴書', '起訴書', 'indictment.png', 'indictment_selected.png', 'judgment-indictment'),\r\n ];\r\n static caseTypeList: CaseType[] = [\r\n CaseType.create(CaseTypeId.JudicialInterpret, '司法判解'),\r\n CaseType.create(CaseTypeId.LawRule, '法規資料'),\r\n CaseType.create(CaseTypeId.Judgment, '裁判資料'),\r\n ];\r\n static propertyIdClassName: { [key in keyof typeof PropertyId]: string } = {\r\n NONE: '',\r\n Judgment_Judgment: 'judgment-judgment',\r\n Judgment_Decision: 'judgment-decision',\r\n Judgment_Other: 'judgment-other',\r\n LawRule_LawRule: 'law-rule-law-rule',\r\n JudicialInterpret_Unified: 'judicial-interpret-unified',\r\n JudicialInterpret_Solve: 'judicial-interpret-solve',\r\n JudicialInterpret_Yuan: 'judicial-interpret-yuan',\r\n JudicialInterpret_YuanSolve: 'judicial-interpret-yuan-solve',\r\n JudicialInterpret_Explain: 'judicial-interpret-explain',\r\n JudicialInterpret_Reject: 'judicial-interpret-reject',\r\n JudicialInterpret_XF38: 'judicial-interpret-xf38',\r\n JudicialInterpret_XF39: 'judicial-interpret-xf39',\r\n JudicialInterpret_XF40: 'judicial-interpret-xf40',\r\n JudicialInterpret_Precedent: 'judicial-interpret-precedent',\r\n JudicialInterpret_Judgment: 'judicial-interpret-judgment',\r\n JudicialInterpret_JudgmentSeuperme: 'judicial-interpret-judgment-supereme',\r\n JudicialInterpret_Reference: 'judicial-interpret-reference',\r\n JudicialInterpret_Resolution: 'judicial-interpret-resolution',\r\n JudicialInterpret_Discipline: 'judicial-interpret-discipline',\r\n JudicialInterpret_Seminar: 'judicial-interpret-seminar',\r\n Indictment_Indictment: 'indictment-indictment',\r\n Indictment_AppendIndictment: 'indictment-append-indictment',\r\n Indictment_SimpleJudgment: 'indictment-simple-judgment',\r\n Indictment_MergeIntention: 'indictment-merge-intention',\r\n Indictment_Other: 'indictment-other',\r\n JudicialInterpret_Grand: 'judicial-interpret-grand',\r\n JudicialInterpret_Execute: 'judicial-interpret-execute'\r\n };\r\n static propertyIdName: { [key in keyof typeof JudgmentProperty]: string } = {\r\n Decision: '裁定',\r\n Judgment: '判決',\r\n Other: '其他'\r\n };\r\n static propertyIdClass: { [key in keyof typeof JudgmentProperty]: string } = {\r\n Decision: 'decision',\r\n Judgment: 'judgment',\r\n Other: 'other'\r\n };\r\n static judgmentCourtLevelName: { [key: string]: string } = {\r\n D: '地方法院',\r\n H: '高等法院',\r\n S: '最高法院',\r\n I: '智慧財產法院',\r\n DJ: '地方檢察署',\r\n HJ: '高等檢察署(尚無資料提供)',\r\n };\r\n static judgmentTypeIdNameId: { [key: string]: JudgmentType } = {\r\n V: JudgmentType.Civil,\r\n M: JudgmentType.Criminal,\r\n A: JudgmentType.Administrative,\r\n O: JudgmentType.Other,\r\n I: JudgmentType.Intellectual,\r\n };\r\n static judgmentCourtIdName: { [key in keyof typeof JudgmentCourtId]: string } = {\r\n NONE: '',\r\n V_D_Taipei: '臺北地方法院',\r\n V_D_Shihlin: '士林地方法院',\r\n V_D_New_Taipei: '新北地方法院',\r\n V_D_Keelung: '基隆地方法院',\r\n V_D_Yilan: '宜蘭地方法院',\r\n V_D_Taoyuan: '桃園地方法院',\r\n V_D_Hsinchu: '新竹地方法院',\r\n V_D_Miaoli: '苗栗地方法院',\r\n V_D_Taichung: '臺中地方法院',\r\n V_D_Changhua: '彰化地方法院',\r\n V_D_Nantou: '南投地方法院',\r\n V_D_Yunlin: '雲林地方法院',\r\n V_D_Chiayi: '嘉義地方法院',\r\n V_D_Tainan: '臺南地方法院',\r\n V_D_Kaohsiung: '高雄地方法院',\r\n V_D_Qiaotou: '橋頭地方法院',\r\n V_D_Hualien: '花蓮地方法院',\r\n V_D_Taitung: '臺東地方法院',\r\n V_D_Pingtung: '屏東地方法院',\r\n V_D_Penghu: '澎湖地方法院',\r\n V_D_Kinmen: '金門地方法院',\r\n V_D_Lienchiang: '連江地方法院',\r\n V_D_Kaohsiung_Juvenile: '高雄少年及家事法院',\r\n V_H: '高等法院',\r\n V_H_Taichung: '高等法院 臺中分院',\r\n V_H_Tainan: '高等法院 臺南分院',\r\n V_H_Hualien: '高等法院 花蓮分院',\r\n V_H_Kaohsiung: '高等法院 高雄分院',\r\n V_H_Kinmen: '高等法院 金門分院',\r\n V_S: '最高法院',\r\n V_I: '民事智財法院', // V_I: '智慧財產法院',\r\n M_D_Taipei: '臺北地方法院',\r\n M_D_Shihlin: '士林地方法院',\r\n M_D_New_Taipei: '新北地方法院',\r\n M_D_Keelung: '基隆地方法院',\r\n M_D_Yilan: '宜蘭地方法院',\r\n M_D_Taoyuan: '桃園地方法院',\r\n M_D_Hsinchu: '新竹地方法院',\r\n M_D_Miaoli: '苗栗地方法院',\r\n M_D_Taichung: '臺中地方法院',\r\n M_D_Changhua: '彰化地方法院',\r\n M_D_Nantou: '南投地方法院',\r\n M_D_Yunlin: '雲林地方法院',\r\n M_D_Chiayi: '嘉義地方法院',\r\n M_D_Tainan: '臺南地方法院',\r\n M_D_Kaohsiung: '高雄地方法院',\r\n M_D_Qiaotou: '橋頭地方法院',\r\n M_D_Hualien: '花蓮地方法院',\r\n M_D_Taitung: '臺東地方法院',\r\n M_D_Pingtung: '屏東地方法院',\r\n M_D_Penghu: '澎湖地方法院',\r\n M_D_Kinmen: '金門地方法院',\r\n M_D_Lienchiang: '連江地方法院',\r\n M_H: '高等法院',\r\n M_H_Taichung: '高等法院 臺中分院',\r\n M_H_Tainan: '高等法院 臺南分院',\r\n M_H_Hualien: '高等法院 花蓮分院',\r\n M_H_Kaohsiung: '高等法院 高雄分院',\r\n M_H_Kinmen: '高等法院 金門分院',\r\n M_S: '最高法院',\r\n M_I: '刑事智財法院',\r\n A_D_Taipei: '臺北地方法院',\r\n A_D_Shihlin: '士林地方法院',\r\n A_D_New_Taipei: '新北地方法院',\r\n A_D_Keelung: '基隆地方法院',\r\n A_D_Yilan: '宜蘭地方法院',\r\n A_D_Taoyuan: '桃園地方法院',\r\n A_D_Hsinchu: '新竹地方法院',\r\n A_D_Miaoli: '苗栗地方法院',\r\n A_D_Taichung: '臺中地方法院',\r\n A_D_Changhua: '彰化地方法院',\r\n A_D_Nantou: '南投地方法院',\r\n A_D_Yunlin: '雲林地方法院',\r\n A_D_Chiayi: '嘉義地方法院',\r\n A_D_Tainan: '臺南地方法院',\r\n A_D_Kaohsiung: '高雄地方法院',\r\n A_D_Qiaotou: '橋頭地方法院',\r\n A_D_Hualien: '花蓮地方法院',\r\n A_D_Taitung: '臺東地方法院',\r\n A_D_Pingtung: '屏東地方法院',\r\n A_D_Penghu: '澎湖地方法院',\r\n A_D_Kinmen: '金門地方法院',\r\n A_D_Lienchiang: '連江地方法院',\r\n A_H_Taipei: '高等法院',\r\n A_H_Taichung: '高等法院 臺中分院',\r\n A_H_Kaohsiung: '高等法院 高雄分院',\r\n A_S: '最高法院',\r\n A_I: '行政智財法院',\r\n O_P: '懲戒法院(公務員懲戒委員會)',\r\n O_C: '司法院刑事補償',\r\n O_J: '司法院職務法庭',\r\n };\r\n static indictmentCourtIdName: { [key in keyof typeof IndictmentCourtId]: string } = {\r\n NONE: '',\r\n In_D_Taipei: '臺北地方檢察署',\r\n In_D_Shihlin: '士林地方檢察署',\r\n In_D_New_Taipei: '新北地方檢察署',\r\n In_D_Taoyuan: '桃園地方檢察署',\r\n In_D_Hsinchu: '新竹地方檢察署',\r\n In_D_Miaoli: '苗栗地方檢察署',\r\n In_D_Taichung: '臺中地方檢察署',\r\n In_D_Changhua: '彰化地方檢察署',\r\n In_D_Nantou: '南投地方檢察署',\r\n In_D_Yunlin: '雲林地方檢察署',\r\n In_D_Chiayi: '嘉義地方檢察署',\r\n In_D_Tainan: '臺南地方檢察署',\r\n In_D_Kaohsiung: '高雄地方檢察署',\r\n In_D_Qiaotou: '橋頭地方檢察署',\r\n In_D_Pingtung: '屏東地方檢察署',\r\n In_D_Taitung: '臺東地方檢察署',\r\n In_D_Hualien: '花蓮地方檢察署',\r\n In_D_Yilan: '宜蘭地方檢察署',\r\n In_D_Keelung: '基隆地方檢察署',\r\n In_D_Penghu: '澎湖地方檢察署',\r\n In_D_Kinmen: '福建金門地方檢察署',\r\n In_D_Lienchiang: '福建連江地方檢察署',\r\n In_H: '高等檢察署',\r\n In_H_Taichung: '高等檢察署臺中檢察分署',\r\n In_H_Tainan: '高等檢察署臺南檢察分署',\r\n In_H_Kaohsiung: '高等檢察署高雄檢察分署',\r\n In_H_Hualien: '高等檢察署花蓮檢察分署',\r\n In_H_Kinmen: '福建高等檢察署金門檢察分署',\r\n }\r\n static judgmentTypeSearchType: { [key in keyof typeof JudgmentType]: JudgmentSearchResultType } = {\r\n Civil: JudgmentSearchResultType.Civil,\r\n Criminal: JudgmentSearchResultType.Criminal,\r\n Administrative: JudgmentSearchResultType.Administrative,\r\n Other: JudgmentSearchResultType.Other,\r\n Indictment: JudgmentSearchResultType.Indictment,\r\n Intellectual: JudgmentSearchResultType.Intellectual,\r\n };\r\n static judgmentTypeIdName: { [key in keyof typeof JudgmentType]: string } = {\r\n Civil: '民事類',\r\n Criminal: '刑事類',\r\n Administrative: '行政類',\r\n Intellectual: '智財類',\r\n Other: '其他類',\r\n Indictment: '起訴書',\r\n }\r\n}\r\n","export enum CaseTypeId {\r\n NONE = 0,\r\n Judgment = 1,\r\n LawRule = 2,\r\n JudicialInterpret = 3,\r\n Indictment = 4,\r\n}\r\n","import { CaseTypeId } from './case-type-id.enum';\r\nimport { CourtType } from './court-type';\r\n\r\nexport class CaseType {\r\n case_type_id: CaseTypeId;\r\n get caseTypeIdString(): string { return CaseTypeId[this.case_type_id]; }\r\n name: string;\r\n\r\n static create(\r\n case_type_id: CaseTypeId\r\n , name: string\r\n ): CaseType {\r\n const c = new CaseType();\r\n c.case_type_id = case_type_id;\r\n c.name = name;\r\n return c;\r\n }\r\n}\r\n","export enum CourtBlockId {\r\n NONE,\r\n // Court_Court ,\r\n // Court_BigJudge ,\r\n // Court_Reject ,\r\n // Precedent_Normal ,\r\n // FeaturedJudgment_Civil ,\r\n // FeaturedJudgment_Criminal ,\r\n // FeaturedJudgment_Administrative ,\r\n // FeaturedJudgment_Supreme ,\r\n // FeaturedJudgment_High ,\r\n // Resolution_Civil ,\r\n // Resolution_Criminal ,\r\n // Resolution_Administrative ,\r\n // Discipline_Discipline ,\r\n // Seminar_Civil ,\r\n // Seminar_Criminal ,\r\n // Seminar_Administrative ,\r\n // Seminar_Discipline ,\r\n JudicialInterpret_Court_Court,\r\n JudicialInterpret_Court_BigJudge,\r\n JudicialInterpret_Court_Reject,\r\n JudicialInterpret_Court_XF,\r\n JudicialInterpret_Grand_Normal,\r\n JudicialInterpret_Precedent_Normal,\r\n JudicialInterpret_Precedent_Stop,\r\n JudicialInterpret_Judgment_V,\r\n JudicialInterpret_Judgment_M,\r\n JudicialInterpret_Judgment_A,\r\n JudicialInterpret_Judgment_SupremeReference,\r\n JudicialInterpret_Judgment_HighReference,\r\n JudicialInterpret_Resolution_V,\r\n JudicialInterpret_Resolution_M,\r\n JudicialInterpret_Resolution_A,\r\n JudicialInterpret_Discipline_Discipline,\r\n JudicialInterpret_Seminar_V,\r\n JudicialInterpret_Seminar_M,\r\n JudicialInterpret_Seminar_A,\r\n JudicialInterpret_Seminar_Discipline,\r\n JudicialInterpret_Execute_Execute,\r\n LawRule_Now,\r\n LawRule_Repeal,\r\n LawRule_Stop,\r\n Judgment_Civil_Local,\r\n Judgment_Civil_High,\r\n Judgment_Civil_Supreme,\r\n Judgment_Civil_Intel,\r\n Judgment_Criminal_Local,\r\n Judgment_Criminal_High,\r\n Judgment_Criminal_Supreme,\r\n Judgment_Criminal_Intel,\r\n Judgment_Administrative_Local,\r\n Judgment_Administrative_High,\r\n Judgment_Administrative_Supreme,\r\n Judgment_Administrative_Intel,\r\n Judgment_Intellectual,\r\n Judgment_Other_Discipline,\r\n Judgment_Other_Criminal,\r\n Judgment_Other_Court,\r\n Judgment_Indictment_Local,\r\n Judgment_Indictment_High,\r\n // Precedent_Stop ,\r\n // Grand_Normal ,\r\n}\r\n","import { CourtBlockId } from \"./court-block-id.enum\";\r\nimport { CourtTypeId } from \"./court-type-id.enum\";\r\nimport { CaseTypeId } from \"./case-type-id.enum\";\r\nimport { Court } from \"./court\";\r\n\r\nexport class CourtBlock {\r\n court_block_id: CourtBlockId;\r\n get courtBlockIdString(): string { return CourtBlockId[this.court_block_id] };\r\n\r\n court_type_id: CourtTypeId;\r\n get courtTypeIdString(): string { return CourtTypeId[this.court_type_id]; }\r\n\r\n case_type_id: CaseTypeId;\r\n get caseTypeIdString(): string { return CaseTypeId[this.case_type_id]; }\r\n\r\n condition_name: string;\r\n result_name: string;\r\n icon: string;\r\n class_name: string;\r\n\r\n\r\n\r\n static create(\r\n court_block_id: CourtBlockId\r\n , court_type_id: CourtTypeId\r\n , case_type_id: CaseTypeId\r\n , condition_name: string\r\n , result_name: string\r\n , icon: string\r\n , class_name: string\r\n ): CourtBlock {\r\n const c = new CourtBlock();\r\n c.court_block_id = court_block_id;\r\n c.court_type_id = court_type_id;\r\n c.case_type_id = case_type_id;\r\n\r\n c.condition_name = condition_name;\r\n c.result_name = result_name;\r\n c.icon = icon;\r\n c.class_name = class_name;\r\n return c;\r\n }\r\n static create2(data): CourtBlock {\r\n return Object.assign(new CourtBlock(), data);\r\n }\r\n}\r\n","export enum CourtId {\r\n NONE = 0,\r\n JudicialInterpret_ctypeABC = 1,\r\n ctypeABC = 1,\r\n JudicialInterpret_ctypeD = 2,\r\n ctypeD = 2,\r\n JudicialInterpret_ttypeX = 3,\r\n ttypeX = 3,\r\n JudicialInterpret_jtype21gc1m134 = 4,\r\n jtype21gc1m134 = 4,\r\n JudicialInterpret_jtype22gc2m1342 = 5,\r\n jtype22gc2m1342 = 5,\r\n JudicialInterpret_jtype23gc3m134 = 6,\r\n jtype23gc3m134 = 6,\r\n JudicialInterpret_jtypeA = 7,\r\n jtypeA = 7,\r\n JudicialInterpret_jtypeB = 8,\r\n jtypeB = 8,\r\n JudicialInterpret_jtypeE = 9,\r\n jtypeE = 9,\r\n JudicialInterpret_jtype1A = 10,\r\n jtype1A = 10,\r\n JudicialInterpret_jtype1B = 11,\r\n jtype1B = 11,\r\n JudicialInterpret_jtype1E = 12,\r\n jtype1E = 12,\r\n JudicialInterpret_jtypeI = 13,\r\n jtypeI = 13,\r\n JudicialInterpret_jtypeG = 14,\r\n jtypeG = 14,\r\n JudicialInterpret_jtypeC01 = 15,\r\n jtypeC01 = 15,\r\n JudicialInterpret_jtypeO = 16,\r\n jtypeO = 16,\r\n JudicialInterpret_jtypeJ = 17,\r\n jtypeJ = 17,\r\n JudicialInterpret_jtypeH = 18,\r\n jtypeH = 18,\r\n JudicialInterpret_jtypeD01 = 19,\r\n jtypeD01 = 19,\r\n JudicialInterpret_jtypeP = 20,\r\n jtypeP = 20,\r\n JudicialInterpret_jtypeR = 21,\r\n jtypeR = 21,\r\n JudicialInterpret_jtypeK = 22,\r\n jtypeK = 22,\r\n JudicialInterpret_jtypeF01 = 23,\r\n jtypeF01 = 23,\r\n JudicialInterpret_jtypeQ = 24,\r\n jtypeQ = 24,\r\n JudicialInterpret_jtypeU = 25,\r\n jtypeU = 25,\r\n JudicialInterpret_jtypeV = 26,\r\n jtypeV = 26,\r\n JudicialInterpret_jtypeS = 27,\r\n jtypeS = 27,\r\n JudicialInterpret_jtypeT = 28,\r\n jtypeT = 28,\r\n JudicialInterpret_dtypeA01 = 29,\r\n dtypeA01 = 29,\r\n JudicialInterpret_dtypeB01 = 30,\r\n dtypeB01 = 30,\r\n JudicialInterpret_dtypeC01 = 31,\r\n dtypeC01 = 31,\r\n JudicialInterpret_jtypeL = 32,\r\n jtypeL = 32,\r\n JudicialInterpret_qtypeA = 33,\r\n qtypeA = 33,\r\n JudicialInterpret_qtypeG = 34,\r\n qtypeG = 34,\r\n JudicialInterpret_qtypeB = 35,\r\n qtypeB = 35,\r\n JudicialInterpret_qtypeC = 36,\r\n qtypeC = 36,\r\n JudicialInterpret_qtypeD = 37,\r\n qtypeD = 37,\r\n JudicialInterpret_etypeX01 = 38,\r\n etypeX01 = 38,\r\n LawRule_Now_Name = 39,\r\n LawRule_Now_Fulltext = 40,\r\n LawRule_Repeal_Name = 41,\r\n LawRule_Repeal_Fulltext = 42,\r\n LawRule_Stop_Name = 43,\r\n LawRule_Stop_Fulltext = 44,\r\n Judgment_V_D_Taipei = 45,\r\n V_D_Taipei = 45,\r\n Judgment_V_D_Shihlin = 46,\r\n V_D_Shihlin = 46,\r\n Judgment_V_D_New_Taipei = 47,\r\n V_D_New_Taipei = 47,\r\n Judgment_V_D_Keelung = 48,\r\n V_D_Keelung = 48,\r\n Judgment_V_D_Yilan = 49,\r\n V_D_Yilan = 49,\r\n Judgment_V_D_Taoyuan = 50,\r\n V_D_Taoyuan = 50,\r\n Judgment_V_D_Hsinchu = 51,\r\n V_D_Hsinchu = 51,\r\n Judgment_V_D_Miaoli = 52,\r\n V_D_Miaoli = 52,\r\n Judgment_V_D_Taichung = 53,\r\n V_D_Taichung = 53,\r\n Judgment_V_D_Changhua = 54,\r\n V_D_Changhua = 54,\r\n Judgment_V_D_Nantou = 55,\r\n V_D_Nantou = 55,\r\n Judgment_V_D_Yunlin = 56,\r\n V_D_Yunlin = 56,\r\n Judgment_V_D_Chiayi = 57,\r\n V_D_Chiayi = 57,\r\n Judgment_V_D_Tainan = 58,\r\n V_D_Tainan = 58,\r\n Judgment_V_D_Kaohsiung = 59,\r\n V_D_Kaohsiung = 59,\r\n Judgment_V_D_Qiaotou = 60,\r\n V_D_Qiaotou = 60,\r\n Judgment_V_D_Hualien = 61,\r\n V_D_Hualien = 61,\r\n Judgment_V_D_Taitung = 62,\r\n V_D_Taitung = 62,\r\n Judgment_V_D_Pingtung = 63,\r\n V_D_Pingtung = 63,\r\n Judgment_V_D_Penghu = 64,\r\n V_D_Penghu = 64,\r\n Judgment_V_D_Kinmen = 65,\r\n V_D_Kinmen = 65,\r\n Judgment_V_D_Lienchiang = 66,\r\n V_D_Lienchiang = 66,\r\n Judgment_V_D_Kaohsiung_Juvenile = 67,\r\n V_D_Kaohsiung_Juvenile = 67,\r\n Judgment_V_H = 68,\r\n V_H = 68,\r\n Judgment_V_H_Taichung = 69,\r\n V_H_Taichung = 69,\r\n Judgment_V_H_Tainan = 70,\r\n V_H_Tainan = 70,\r\n Judgment_V_H_Hualien = 71,\r\n V_H_Hualien = 71,\r\n Judgment_V_H_Kaohsiung = 72,\r\n V_H_Kaohsiung = 72,\r\n Judgment_V_H_Kinmen = 73,\r\n V_H_Kinmen = 73,\r\n Judgment_V_S = 74,\r\n V_S = 74,\r\n Judgment_V_I = 75,\r\n V_I = 75,\r\n Judgment_M_D_Taipei = 76,\r\n M_D_Taipei = 76,\r\n Judgment_M_D_Shihlin = 77,\r\n M_D_Shihlin = 77,\r\n Judgment_M_D_New_Taipei = 78,\r\n M_D_New_Taipei = 78,\r\n Judgment_M_D_Keelung = 79,\r\n M_D_Keelung = 79,\r\n Judgment_M_D_Yilan = 80,\r\n M_D_Yilan = 80,\r\n Judgment_M_D_Taoyuan = 81,\r\n M_D_Taoyuan = 81,\r\n Judgment_M_D_Hsinchu = 82,\r\n M_D_Hsinchu = 82,\r\n Judgment_M_D_Miaoli = 83,\r\n M_D_Miaoli = 83,\r\n Judgment_M_D_Taichung = 84,\r\n M_D_Taichung = 84,\r\n Judgment_M_D_Changhua = 85,\r\n M_D_Changhua = 85,\r\n Judgment_M_D_Nantou = 86,\r\n M_D_Nantou = 86,\r\n Judgment_M_D_Yunlin = 87,\r\n M_D_Yunlin = 87,\r\n Judgment_M_D_Chiayi = 88,\r\n M_D_Chiayi = 88,\r\n Judgment_M_D_Tainan = 89,\r\n M_D_Tainan = 89,\r\n Judgment_M_D_Kaohsiung = 90,\r\n M_D_Kaohsiung = 90,\r\n Judgment_M_D_Qiaotou = 91,\r\n M_D_Qiaotou = 91,\r\n Judgment_M_D_Hualien = 92,\r\n M_D_Hualien = 92,\r\n Judgment_M_D_Taitung = 93,\r\n M_D_Taitung = 93,\r\n Judgment_M_D_Pingtung = 94,\r\n M_D_Pingtung = 94,\r\n Judgment_M_D_Penghu = 95,\r\n M_D_Penghu = 95,\r\n Judgment_M_D_Kinmen = 96,\r\n M_D_Kinmen = 96,\r\n Judgment_M_D_Lienchiang = 97,\r\n M_D_Lienchiang = 97,\r\n Judgment_M_H = 98,\r\n M_H = 98,\r\n Judgment_M_H_Taichung = 99,\r\n M_H_Taichung = 99,\r\n Judgment_M_H_Tainan = 100,\r\n M_H_Tainan = 100,\r\n Judgment_M_H_Hualien = 101,\r\n M_H_Hualien = 101,\r\n Judgment_M_H_Kaohsiung = 102,\r\n M_H_Kaohsiung = 102,\r\n Judgment_M_H_Kinmen = 103,\r\n M_H_Kinmen = 103,\r\n Judgment_M_S = 104,\r\n M_S = 104,\r\n Judgment_M_I = 105,\r\n M_I = 105,\r\n Judgment_A_D_Taipei = 106,\r\n A_D_Taipei = 106,\r\n Judgment_A_D_Shihlin = 107,\r\n A_D_Shihlin = 107,\r\n Judgment_A_D_New_Taipei = 108,\r\n A_D_New_Taipei = 108,\r\n Judgment_A_D_Keelung = 109,\r\n A_D_Keelung = 109,\r\n Judgment_A_D_Yilan = 110,\r\n A_D_Yilan = 110,\r\n Judgment_A_D_Taoyuan = 111,\r\n A_D_Taoyuan = 111,\r\n Judgment_A_D_Hsinchu = 112,\r\n A_D_Hsinchu = 112,\r\n Judgment_A_D_Miaoli = 113,\r\n A_D_Miaoli = 113,\r\n Judgment_A_D_Taichung = 114,\r\n A_D_Taichung = 114,\r\n Judgment_A_D_Changhua = 115,\r\n A_D_Changhua = 115,\r\n Judgment_A_D_Nantou = 116,\r\n A_D_Nantou = 116,\r\n Judgment_A_D_Yunlin = 117,\r\n A_D_Yunlin = 117,\r\n Judgment_A_D_Chiayi = 118,\r\n A_D_Chiayi = 118,\r\n Judgment_A_D_Tainan = 119,\r\n A_D_Tainan = 119,\r\n Judgment_A_D_Kaohsiung = 120,\r\n A_D_Kaohsiung = 120,\r\n Judgment_A_D_Qiaotou = 121,\r\n A_D_Qiaotou = 121,\r\n Judgment_A_D_Hualien = 122,\r\n A_D_Hualien = 122,\r\n Judgment_A_D_Taitung = 123,\r\n A_D_Taitung = 123,\r\n Judgment_A_D_Pingtung = 124,\r\n A_D_Pingtung = 124,\r\n Judgment_A_D_Penghu = 125,\r\n A_D_Penghu = 125,\r\n Judgment_A_D_Kinmen = 126,\r\n A_D_Kinmen = 126,\r\n Judgment_A_D_Lienchiang = 127,\r\n A_D_Lienchiang = 127,\r\n Judgment_A_H_Taipei = 128,\r\n A_H_Taipei = 128,\r\n Judgment_A_H_Taichung = 129,\r\n A_H_Taichung = 129,\r\n Judgment_A_H_Kaohsiung = 130,\r\n A_H_Kaohsiung = 130,\r\n Judgment_A_S = 131,\r\n A_S = 131,\r\n Judgment_A_I = 132,\r\n A_I = 132,\r\n Judgment_O_P = 133,\r\n O_P = 133,\r\n Judgment_O_C = 134,\r\n O_C = 134,\r\n Judgment_O_J = 135,\r\n O_J = 135,\r\n Judgment_In_D_Taipei = 136,\r\n In_D_Taipei = 136,\r\n Judgment_In_D_Shihlin = 137,\r\n In_D_Shihlin = 137,\r\n Judgment_In_D_New_Taipei = 138,\r\n In_D_New_Taipei = 138,\r\n Judgment_In_D_Taoyuan = 139,\r\n In_D_Taoyuan = 139,\r\n Judgment_In_D_Hsinchu = 140,\r\n In_D_Hsinchu = 140,\r\n Judgment_In_D_Miaoli = 141,\r\n In_D_Miaoli = 141,\r\n Judgment_In_D_Taichung = 142,\r\n In_D_Taichung = 142,\r\n Judgment_In_D_Changhua = 143,\r\n In_D_Changhua = 143,\r\n Judgment_In_D_Nantou = 144,\r\n In_D_Nantou = 144,\r\n Judgment_In_D_Yunlin = 145,\r\n In_D_Yunlin = 145,\r\n Judgment_In_D_Chiayi = 146,\r\n In_D_Chiayi = 146,\r\n Judgment_In_D_Tainan = 147,\r\n In_D_Tainan = 147,\r\n Judgment_In_D_Kaohsiung = 148,\r\n In_D_Kaohsiung = 148,\r\n Judgment_In_D_Qiaotou = 149,\r\n In_D_Qiaotou = 149,\r\n Judgment_In_D_Pingtung = 150,\r\n In_D_Pingtung = 150,\r\n Judgment_In_D_Taitung = 151,\r\n In_D_Taitung = 151,\r\n Judgment_In_D_Hualien = 152,\r\n In_D_Hualien = 152,\r\n Judgment_In_D_Yilan = 153,\r\n In_D_Yilan = 153,\r\n Judgment_In_D_Keelung = 154,\r\n In_D_Keelung = 154,\r\n Judgment_In_D_Penghu = 155,\r\n In_D_Penghu = 155,\r\n Judgment_In_D_Kinmen = 156,\r\n In_D_Kinmen = 156,\r\n Judgment_In_D_Lienchiang = 157,\r\n In_D_Lienchiang = 157,\r\n Judgment_In_H = 158,\r\n In_H = 158,\r\n Judgment_In_H_Taichung = 159,\r\n In_H_Taichung = 159,\r\n Judgment_In_H_Tainan = 160,\r\n In_H_Tainan = 160,\r\n Judgment_In_H_Kaohsiung = 161,\r\n In_H_Kaohsiung = 161,\r\n Judgment_In_H_Hualien = 162,\r\n In_H_Hualien = 162,\r\n Judgment_In_H_Kinmen = 163,\r\n In_H_Kinmen = 163,\r\n JudicialInterpret_xftype38 = 164,\r\n xftype38 = 164,\r\n JudicialInterpret_xftype39 = 165,\r\n xftype39 = 165,\r\n JudicialInterpret_xftype40 = 166,\r\n xftype40 = 166,\r\n}\r\n","export enum CourtTypeId {\r\n NONE,\r\n JudicialInterpret_Court,\r\n JudicialInterpret_Precedent,\r\n JudicialInterpret_Judgment,\r\n JudicialInterpret_Resolution,\r\n JudicialInterpret_Discipline,\r\n JudicialInterpret_Seminar,\r\n JudicialInterpret_Grand,\r\n JudicialInterpret_Execute,\r\n LawRule,\r\n Judgment_Civil,\r\n Judgment_Criminal,\r\n Judgment_Administrative,\r\n Judgment_Intellectual,\r\n Judgment_Other,\r\n Judgment_Indictment,\r\n}\r\n","import { CourtTypeId } from './court-type-id.enum';\r\nimport { CaseTypeId } from './case-type-id.enum';\r\nimport { CourtBlock } from './court-block';\r\n\r\nexport class CourtType {\r\n court_type_id: CourtTypeId;\r\n get courtTypeIdString(): string { return CourtTypeId[this.court_type_id]; }\r\n\r\n case_type_id: CaseTypeId;\r\n get caseTypeIdString(): string { return CaseTypeId[this.case_type_id]; }\r\n\r\n condition_name: string;\r\n result_name: string;\r\n icon: string;\r\n selected_icon: string;\r\n class_name: string;\r\n\r\n count: number;\r\n counting: boolean;\r\n finish: boolean;\r\n count_read: boolean;\r\n\r\n getCountText(): string {\r\n return this.count > 0 ?\r\n this.count > 999 ?\r\n '999+'\r\n : this.count.toLocaleString()\r\n : '';\r\n }\r\n\r\n static create(\r\n court_type_id: CourtTypeId\r\n , case_type_id: CaseTypeId\r\n , condition_name: string\r\n , result_name: string\r\n , icon: string\r\n , selected_icon: string\r\n , class_name: string\r\n ): CourtType {\r\n const c = new CourtType();\r\n c.court_type_id = court_type_id;\r\n c.case_type_id = case_type_id;\r\n\r\n c.condition_name = condition_name;\r\n c.result_name = result_name;\r\n c.icon = icon;\r\n c.selected_icon = selected_icon;\r\n c.class_name = class_name;\r\n c.count_read = false;\r\n c.count = 0;\r\n return c;\r\n }\r\n}","import { CaseTypeId } from './case-type-id.enum';\r\nimport { CourtId } from './court-id.enum';\r\nimport { CourtBlockId } from './court-block-id.enum';\r\nimport { CourtTypeId } from './court-type-id.enum';\r\n\r\nexport class Court {\r\n court_id: CourtId;\r\n get courtIdString(): string { return CourtId[this.court_id]; }\r\n\r\n court_block_id: CourtBlockId;\r\n get courtBlockIdString(): string { return CourtBlockId[this.court_block_id]; }\r\n\r\n court_type_id: CourtTypeId;\r\n get courtTypeIdString(): string { return CourtTypeId[this.court_type_id]; }\r\n\r\n case_type_id: CaseTypeId;\r\n get caseTypeIdString(): string { return CaseTypeId[this.case_type_id]; }\r\n\r\n /** 法院資料 */\r\n\r\n // 條件頁用的名稱\r\n condition_name: string;\r\n // 檢索結果清單用的名稱\r\n list_name: string;\r\n // 手機版檢索結果清單用名稱\r\n mobile_list_name: string;\r\n // class名稱\r\n class_name: string;\r\n\r\n count: number;\r\n counting: boolean;\r\n finish: boolean;\r\n\r\n\r\n static create(\r\n court_id: CourtId\r\n , court_block_id: CourtBlockId\r\n , court_type_id: CourtTypeId\r\n , case_type_id: CaseTypeId\r\n , condition_name: string\r\n , list_name: string\r\n , class_name: string\r\n ): Court {\r\n const c = new Court();\r\n c.court_id = court_id;\r\n c.court_block_id = court_block_id;\r\n c.court_type_id = court_type_id;\r\n c.case_type_id = case_type_id;\r\n c.condition_name = condition_name;\r\n c.list_name = list_name;\r\n c.class_name = class_name;\r\n return c;\r\n }\r\n static create2(data): Court {\r\n return Object.assign(new Court(), data);\r\n }\r\n}\r\n","export enum PropertyId {\r\n NONE = 0,\r\n Judgment_Judgment = 1,\r\n Judgment_Decision = 2,\r\n Judgment_Other = 3,\r\n LawRule_LawRule = 4,\r\n JudicialInterpret_Unified = 5,\r\n JudicialInterpret_Solve = 6,\r\n JudicialInterpret_Yuan = 7,\r\n JudicialInterpret_YuanSolve = 8,\r\n JudicialInterpret_Explain = 9,\r\n JudicialInterpret_Reject = 10,\r\n JudicialInterpret_Precedent = 11,\r\n JudicialInterpret_Judgment = 12,\r\n JudicialInterpret_JudgmentSeuperme = 13,\r\n JudicialInterpret_Reference = 14,\r\n JudicialInterpret_Resolution = 15,\r\n JudicialInterpret_Discipline = 16,\r\n JudicialInterpret_Seminar = 17,\r\n Indictment_Indictment = 18,\r\n Indictment_AppendIndictment = 19,\r\n Indictment_SimpleJudgment = 20,\r\n Indictment_MergeIntention = 21,\r\n Indictment_Other = 22,\r\n JudicialInterpret_Grand = 23,\r\n JudicialInterpret_Execute = 24,\r\n JudicialInterpret_XF38 = 25,\r\n JudicialInterpret_XF39 = 26,\r\n JudicialInterpret_XF40 = 27,\r\n}\r\n","export enum CategoryTypeId {\r\n NONE = 0,\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n _4 = 4,\r\n _5 = 5,\r\n _6 = 6,\r\n _7 = 7,\r\n _8 = 8,\r\n _9 = 9,\r\n _10 = 10,\r\n _11 = 11,\r\n _12 = 12,\r\n _13 = 13,\r\n _14 = 14,\r\n _15 = 15,\r\n _16 = 16,\r\n _17 = 17,\r\n _18 = 18,\r\n _19 = 19,\r\n _20 = 20,\r\n /** 全部分類 */\r\n all = 998,\r\n /** 未分類 */\r\n uncategory = 999,\r\n}\r\n\r\n","import { CategoryTypeId } from './category-type-id.enum';\r\nimport { Category2 } from './category2';\r\n\r\n/** 主要用在個人倉庫、筆記 */\r\nexport class Category {\r\n static typeIdIconDict: { [key in keyof typeof CategoryTypeId]: string } = {\r\n NONE: 'symbol_question.png',\r\n _1: '1.png',\r\n _2: '2.png',\r\n _3: '3.png',\r\n _4: '4.png',\r\n _5: '5.png',\r\n _6: '6.png',\r\n _7: '7.png',\r\n _8: '8.png',\r\n _9: '9.png',\r\n _10: '10.png',\r\n _11: '11.png',\r\n _12: '12.png',\r\n _13: '13.png',\r\n _14: '14.png',\r\n _15: '15.png',\r\n _16: '16.png',\r\n _17: '17.png',\r\n _18: '18.png',\r\n _19: '19.png',\r\n _20: '20.png',\r\n all: 'arrow_refresh.png',\r\n uncategory: 'symbol_question.png',\r\n };\r\n static oldIconMapToNewIcon = {\r\n 'pathicon/pathicon_type01_01.png': '1.png',\r\n 'pathicon/pathicon_type01_02.png': '2.png',\r\n 'pathicon/pathicon_type01_03.png': '3.png',\r\n 'pathicon/pathicon_type01_04.png': '4.png',\r\n 'pathicon/pathicon_type01_05.png': '5.png',\r\n 'pathicon/pathicon_type01_06.png': '6.png',\r\n 'pathicon/pathicon_type01_07.png': '7.png',\r\n 'pathicon/pathicon_type01_08.png': '8.png',\r\n 'pathicon/pathicon_type01_09.png': '9.png',\r\n 'pathicon/pathicon_type01_10.png': '10.png',\r\n 'pathicon/pathicon_type03_01.png': '11.png',\r\n 'pathicon/pathicon_type03_02.png': '12.png',\r\n 'pathicon/pathicon_type03_03.png': '13.png',\r\n 'pathicon/pathicon_type03_04.png': '14.png',\r\n 'pathicon/pathicon_type03_05.png': '15.png',\r\n 'pathicon/pathicon_type03_06.png': '16.png',\r\n 'pathicon/pathicon_type03_07.png': '17.png',\r\n 'pathicon/pathicon_type03_08.png': '18.png',\r\n 'pathicon/pathicon_type03_09.png': '19.png',\r\n 'pathicon/pathicon_type03_10.png': '20.png',\r\n //\r\n 'pathicon/pathicon_type02_01.png': 'b7.png',\r\n 'pathicon/pathicon_type02_02.png': 'b1.png',\r\n 'pathicon/pathicon_type02_03.png': 'b2.png',\r\n 'pathicon/pathicon_type02_04.png': 'b3.png',\r\n 'pathicon/pathicon_type02_05.png': 'b5.png',\r\n 'pathicon/pathicon_type02_06.png': 'b6.png',\r\n 'pathicon/pathicon_type02_07.png': 'b8.png',\r\n 'pathicon/pathicon_type02_08.png': 'b9.png',\r\n };\r\n\r\n // static defaultIcon: string = 'category/9.png';\r\n static defaultTypeId: CategoryTypeId = CategoryTypeId._1;\r\n static allCategory: Category = Category.NewCategory(-2, CategoryTypeId.all, '全部類別');\r\n static unCategory: Category = Category.NewCategory(-1, CategoryTypeId.uncategory, '未分類');\r\n // Serializable\r\n // .extendObjectFromResponseObject(\r\n // new Category(),\r\n // { sn: -2, icon: 'icon/arrow_refresh.png', text: '全部類別' }\r\n // );\r\n // static unCategory: Category = Serializable\r\n // .extendObjectFromResponseObject(\r\n // new Category(),\r\n // { sn: -1, icon: 'icon/symbol_question.png', text: '未分類' }\r\n // );\r\n\r\n\r\n // virtual_index: number;\r\n sn: number;\r\n type_id: CategoryTypeId;\r\n get typeIdText(): string { return CategoryTypeId[this.type_id]; }\r\n // icon: string;\r\n get icon(): string { return this.type_id != null ? Category.typeIdIconDict['_' + this.type_id] : null; }\r\n text: string;\r\n reference_count: number;\r\n\r\n get key(): string { return this.text; }\r\n\r\n static NewCategory(sn: number, type_id: CategoryTypeId, text: string): Category {\r\n const c = new Category();\r\n c.sn = sn;\r\n c.type_id = type_id;\r\n // c.icon = icon;\r\n c.text = text;\r\n return c;\r\n }\r\n static getIconUrlByTypeId(type_id_text: string): string {\r\n let _icon = Category.typeIdIconDict.uncategory;\r\n if (Category.typeIdIconDict[type_id_text]) {\r\n _icon = Category.typeIdIconDict[type_id_text];\r\n }\r\n return `/assets/img/category/${_icon}`;\r\n }\r\n static getBackgroundImageUrl(type_id: CategoryTypeId): string {\r\n return `url(${Category.getIconUrlByTypeId(CategoryTypeId[type_id])})`;\r\n }\r\n static getIconStyle(item: Category): any {\r\n const iconUrl = Category.getIconUrlByTypeId(item.typeIdText);\r\n return {\r\n backgroundImage: `url(${iconUrl})`\r\n };\r\n }\r\n static getIconStyleByTypeId(type_id: CategoryTypeId): CSSStyleDeclaration {\r\n const typeIdText = CategoryTypeId[type_id];\r\n const iconUrl = Category.getIconUrlByTypeId(typeIdText);\r\n return {\r\n backgroundImage: `url(${iconUrl})`\r\n } as CSSStyleDeclaration;\r\n }\r\n static compare(a: Category, b: Category): boolean {\r\n const _a = a || Category.unCategory;\r\n const _b = b || Category.unCategory;\r\n return (_a.sn === _b.sn && _a.text === _b.text);\r\n\r\n // if (a == null || b == null) { return false; }\r\n\r\n }\r\n static createFromCategory2(category2: Category2): Category {\r\n const c = new Category();\r\n c.type_id = category2.type_id;\r\n c.sn = category2.index;\r\n c.text = category2.name;\r\n c.reference_count = category2.count;\r\n return c;\r\n }\r\n}\r\n","import { CategoryTypeId } from './category-type-id.enum';\r\nimport { Subcategory2 } from './subcategory2';\r\n\r\n/** 主要用在團隊系統 */\r\nexport class Category2 {\r\n static typeIdIconDict: { [key in keyof typeof CategoryTypeId]: string } = {\r\n NONE: 'symbol_question.png',\r\n _1: '1.png',\r\n _2: '2.png',\r\n _3: '3.png',\r\n _4: '4.png',\r\n _5: '5.png',\r\n _6: '6.png',\r\n _7: '7.png',\r\n _8: '8.png',\r\n _9: '9.png',\r\n _10: '10.png',\r\n _11: '11.png',\r\n _12: '12.png',\r\n _13: '13.png',\r\n _14: '14.png',\r\n _15: '15.png',\r\n _16: '16.png',\r\n _17: '17.png',\r\n _18: '18.png',\r\n _19: '19.png',\r\n _20: '20.png',\r\n all: 'arrow_refresh.png',\r\n uncategory: 'symbol_question.png',\r\n };\r\n static allCategory: Category2 = Category2.create(CategoryTypeId.all, '全部類別');\r\n static unCategory: Category2 = Category2.create(CategoryTypeId.uncategory, '未分類');\r\n\r\n\r\n index: number;\r\n name: string;\r\n type_id: CategoryTypeId;\r\n count: number;\r\n\r\n iconStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n\r\n subcategories: Subcategory2[] = [];\r\n\r\n static create(\r\n type_id: CategoryTypeId,\r\n name: string\r\n ): Category2 {\r\n const c = new Category2();\r\n c.type_id = type_id;\r\n c.name = name;\r\n\r\n c.updateIconStyle();\r\n\r\n return c;\r\n }\r\n static sortOutCategoryList(list: Category2[]): Category2[] {\r\n // 更新ICON\r\n list.forEach(c => {\r\n c.updateIconStyle();\r\n });\r\n // 排序\r\n list.sort((a, b) => {\r\n return a.index - b.index;\r\n });\r\n // 重新設定INDEX\r\n list.forEach((v, i) => {\r\n v.index = i;\r\n });\r\n\r\n // 分項更新ICON\r\n let indexOfAll = 0;\r\n list.forEach(c => {\r\n if (c.subcategories != null) {\r\n // 分項更新ICON\r\n c.subcategories.forEach(s => {\r\n s.updateIconStyle();\r\n });\r\n // 排序\r\n c.subcategories.sort((a, b) => {\r\n return a.index - b.index;\r\n });\r\n // 重新設定INDEX\r\n c.subcategories.forEach((v, i) => {\r\n v.index = i;\r\n v.indexOfAll = indexOfAll;\r\n indexOfAll++;\r\n });\r\n }\r\n });\r\n return list;\r\n }\r\n updateIconStyle(): void {\r\n this.iconStyle = {} as CSSStyleDeclaration;\r\n // let icon: string = '';\r\n if (this.type_id === CategoryTypeId.all\r\n || this.type_id === CategoryTypeId.uncategory\r\n || Category2.typeIdIconDict[CategoryTypeId[this.type_id]] != null) {\r\n const icon: string = `/assets/img/category/${Category2.typeIdIconDict[CategoryTypeId[this.type_id]]}`;\r\n this.iconStyle.backgroundImage = `url(${icon})`;\r\n } else {\r\n\r\n }\r\n }\r\n}\r\n","export enum SubcategoryTypeId {\r\n NONE = 0,\r\n _1 = 1,\r\n _2 = 2,\r\n _3 = 3,\r\n _4 = 4,\r\n _5 = 5,\r\n _6 = 6,\r\n _7 = 7,\r\n _8 = 8,\r\n _9 = 9,\r\n _10 = 10,\r\n all = 998,\r\n unsubcategory = 999,\r\n}\r\n","import { Category } from './category';\r\nimport { SubcategoryTypeId } from './subcategory-type-id.enum';\r\nimport { Subcategory2 } from './subcategory2';\r\n\r\nexport class Subcategory {\r\n static typeIdIconDict: { [key in keyof typeof SubcategoryTypeId]: string } = {\r\n NONE: 'symbol_question.png',\r\n _1: '1.png',\r\n _2: '2.png',\r\n _3: '3.png',\r\n _4: '4.png',\r\n _5: '5.png',\r\n _6: '6.png',\r\n _7: '7.png',\r\n _8: '8.png',\r\n _9: '9.png',\r\n _10: '10.png',\r\n all: 'arrow_refresh.png',\r\n unsubcategory: 'symbol_question.png',\r\n };\r\n static oldIconMapToNewIcon = {\r\n 'subcategory/subcategory_blue.png': '1.png',\r\n 'subcategory/subcategory_red.png': '2.png',\r\n 'subcategory/subcategory_orange.png': '3.png',\r\n 'subcategory/subcategory_yellow.png': '4.png',\r\n 'subcategory/subcategory_green.png': '5.png',\r\n 'subcategory/subcategory_cyan_blue.png': '6.png',\r\n 'subcategory/subcategory_purple.png': '8.png',\r\n };\r\n\r\n // static defaultIcon: string = 'subcategory/9.png';\r\n static defaultTypeId: SubcategoryTypeId = SubcategoryTypeId._1;\r\n static allSubcategory: Subcategory = Subcategory.NewSubcategory(-2, SubcategoryTypeId.all, '全部項目', '');\r\n static unSubcategory: Subcategory = Subcategory.NewSubcategory(-1, SubcategoryTypeId.unsubcategory, '未分項', '');\r\n // Serializable\r\n // .extendObjectFromResponseObject(\r\n // new Subcategory(),\r\n // { row_index: -2, sn: -2, icon: 'icon/arrow_refresh.png', text: '全部項目', category: '' }\r\n // );\r\n // Serializable\r\n // .extendObjectFromResponseObject(\r\n // new Subcategory(),\r\n // { row_index: -1, sn: -1, icon: 'icon/symbol_question.png', text: '未分項', category: '' }\r\n // );\r\n\r\n\r\n // virtual_index: number;\r\n // row_index: number;\r\n sn: number;\r\n type_id: SubcategoryTypeId;\r\n get typeIdText(): string { return SubcategoryTypeId[this.type_id]; }\r\n get icon(): string { return this.type_id != null ? Subcategory.typeIdIconDict['_' + this.type_id] : null; }\r\n text: string;\r\n category_text: string;\r\n reference_count: number;\r\n\r\n get key(): string { return this.category_text + '-' + this.text; }\r\n\r\n static NewSubcategory(\r\n // row_index: number,\r\n sn: number,\r\n type_id: SubcategoryTypeId,\r\n text: string,\r\n category: string): Subcategory {\r\n const s = new Subcategory();\r\n // s.row_index = row_index;\r\n s.sn = sn;\r\n s.type_id = type_id;\r\n // s.icon = icon;\r\n s.text = text;\r\n s.category_text = category;\r\n return s;\r\n }\r\n static getIconUrlByTypeId(type_id_text: string): string {\r\n let _icon = Subcategory.typeIdIconDict.unsubcategory;\r\n if (Subcategory.typeIdIconDict[type_id_text]) {\r\n _icon = Subcategory.typeIdIconDict[type_id_text];\r\n }\r\n return `/assets/img/subcategory/${_icon}`;\r\n }\r\n static getBackgroundImageUrl(type_id: SubcategoryTypeId): string {\r\n return `url(${Subcategory.getIconUrlByTypeId(SubcategoryTypeId[type_id])})`;\r\n }\r\n static getIconStyle(item: Subcategory): any {\r\n const iconUrl = Subcategory.getIconUrlByTypeId(item.typeIdText);\r\n return {\r\n 'backgroundImage': `url(${iconUrl})`\r\n };\r\n\r\n // let _icon = Subcategory.typeIdIconDict['uncategory'];\r\n // if (item != null) {\r\n // _icon = Subcategory.typeIdIconDict[item.typeIdText];\r\n // }\r\n\r\n // // let _icon = item != null ? item.icon : 'icon/symbol_question.png';\r\n // // _icon = _icon != null ? _icon : Subcategory.defaultIcon;\r\n // let _icon = 'icon/symbol_question.png';\r\n\r\n // if (item != null) {\r\n // if (item.icon != null) {\r\n // if (item.icon.match(/^(subcategory\\/|icon\\/)/)) {\r\n // _icon = item.icon;\r\n // } else {\r\n // _icon = 'subcategory/' + item.icon;\r\n // }\r\n // } else {\r\n // _icon = Subcategory.defaultIcon;\r\n // }\r\n // }\r\n\r\n\r\n // return {\r\n // 'backgroundImage': 'url(/assets/img/subcategory/' + _icon + ')'\r\n // };\r\n }\r\n static getIconStyleByTypeId(type_id: SubcategoryTypeId): CSSStyleDeclaration {\r\n const typeIdText = SubcategoryTypeId[type_id];\r\n const iconUrl = Subcategory.getIconUrlByTypeId(typeIdText);\r\n return {\r\n backgroundImage: `url(${iconUrl})`\r\n } as CSSStyleDeclaration;\r\n }\r\n static OrderSubcategoryList(categoryList: Category[], subcategoryList: Subcategory[]) {\r\n subcategoryList.sort((a, b) => {\r\n if (a.category_text == null) {\r\n return 1;\r\n }\r\n if (b.category_text == null) {\r\n return -1;\r\n }\r\n const aCategoryIndex = categoryList.findIndex(v => v.text === a.category_text);\r\n const bCategoryIndex = categoryList.findIndex(v => v.text === b.category_text);\r\n\r\n if (aCategoryIndex < bCategoryIndex) {\r\n return -1;\r\n } else if (aCategoryIndex > bCategoryIndex) {\r\n return 1;\r\n }\r\n\r\n return a.sn - b.sn;\r\n });\r\n }\r\n static compare(a: Subcategory, b: Subcategory) {\r\n const _a = a || Subcategory.unSubcategory;\r\n const _b = b || Subcategory.unSubcategory;\r\n\r\n const _aKey = _a.category_text + _a.sn + _a.text;\r\n const _bKey = _b.category_text + _b.sn + _b.text;\r\n\r\n return _aKey === _bKey;\r\n }\r\n static createFromSubcategory2(s2: Subcategory2): Subcategory {\r\n const s = new Subcategory();\r\n s.sn = s2.index;\r\n s.category_text = s2.category;\r\n s.text = s2.name;\r\n s.type_id = s2.type_id;\r\n s.reference_count = s2.count;\r\n return s;\r\n }\r\n}\r\n","import { SubcategoryTypeId } from './subcategory-type-id.enum';\r\n\r\nexport class Subcategory2 {\r\n static typeIdIconDict: { [key in keyof typeof SubcategoryTypeId]: string } = {\r\n NONE: 'symbol_question.png',\r\n _1: '1.png',\r\n _2: '2.png',\r\n _3: '3.png',\r\n _4: '4.png',\r\n _5: '5.png',\r\n _6: '6.png',\r\n _7: '7.png',\r\n _8: '8.png',\r\n _9: '9.png',\r\n _10: '10.png',\r\n all: 'arrow_refresh.png',\r\n unsubcategory: 'symbol_question.png',\r\n };\r\n static allSubcategory: Subcategory2 = Subcategory2.create(null, SubcategoryTypeId.all, '全部項目');\r\n static unSubcategory: Subcategory2 = Subcategory2.create(null, SubcategoryTypeId.unsubcategory, '未分項');\r\n\r\n indexOfAll: number;\r\n\r\n category: string;\r\n category_sn: number;\r\n\r\n index: number;\r\n name: string;\r\n type_id: SubcategoryTypeId;\r\n count: number;\r\n\r\n iconStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n\r\n static create(\r\n category: string,\r\n type_id: SubcategoryTypeId,\r\n name: string,\r\n ): Subcategory2 {\r\n const s = new Subcategory2();\r\n s.type_id = type_id;\r\n s.name = name;\r\n s.category = category;\r\n s.updateIconStyle();\r\n return s;\r\n }\r\n\r\n updateIconStyle(): void {\r\n this.iconStyle = {} as CSSStyleDeclaration;\r\n let icon: string = '';\r\n if (this.type_id === SubcategoryTypeId.all\r\n || this.type_id === SubcategoryTypeId.unsubcategory\r\n || Subcategory2.typeIdIconDict[SubcategoryTypeId[this.type_id]] != null) {\r\n icon = `/assets/img/subcategory/${Subcategory2.typeIdIconDict[SubcategoryTypeId[this.type_id]]}`;\r\n this.iconStyle.backgroundImage = `url(${icon})`;\r\n } else {\r\n\r\n }\r\n }\r\n}\r\n","import { CheckIn } from './check-in';\r\nimport { CheckInLog } from './check-in-log';\r\nimport { CheckInDataJudgmentCase } from './check-in-data-judgment-case';\r\nimport { CheckInLawArticle } from './check-in-law-article';\r\n\r\nexport class CheckInJudgment implements CheckIn {\r\n static get statusNameDict(): { [key: number]: string } {\r\n return CheckInLawArticle.statusNameDict;\r\n }\r\n static get statusClassNameDict(): { [key: number]: string } {\r\n return CheckInLawArticle.statusClassNameDict;\r\n }\r\n // 總打卡次數\r\n total_count: number;\r\n // 當前狀態\r\n status: number;\r\n // 最新打卡時間\r\n time: Date;\r\n\r\n // 當前狀態名稱\r\n // status_name: string;\r\n // 個別狀態打卡次數\r\n status_count: { [key: number]: number };\r\n // 打卡紀錄\r\n log: CheckInLog[];\r\n // 是否啟用打卡\r\n enableCheckIn: boolean;\r\n // 今日是否已經打卡過\r\n today_checked: boolean;\r\n\r\n // 等待打卡中\r\n isWaitCheckIn: boolean;\r\n // 送出打卡\r\n onCheckIn: (status: number) => void;\r\n\r\n // 等待資料讀取\r\n isWaitLoadingData: boolean;\r\n // 0或小於0=全部\r\n count_past_day: number;\r\n\r\n constructor() {\r\n this.status = 0;\r\n this.status_count = {};\r\n this.log = [];\r\n this.count_past_day = 0;\r\n this.isWaitCheckIn = false;\r\n this.isWaitLoadingData = false;\r\n this.enableCheckIn = true;\r\n }\r\n updateFromDataCase(caseData: CheckInDataJudgmentCase): void {\r\n this.log = caseData.log;\r\n\r\n // this.total_count = Object.values(this.status_count).reduce((s, v) => s + v, 0);\r\n this.total_count = caseData.total_check_in_count;\r\n this.status = 0;\r\n if (this.log && this.log.length > 0) {\r\n this.status = this.log[0].status;\r\n }\r\n\r\n this.today_checked = caseData.today_checked;\r\n }\r\n}\r\n","import { CheckIn } from './check-in';\r\nimport { CheckInLogLawArticle } from './check-in-log-law-article';\r\nimport { CheckInDataLawArticleSystem } from './check-in-data-law-article-system';\r\nimport { CheckInDataLawArticleNote } from './check-in-data-law-article-note';\r\n\r\nexport class CheckInLawArticle implements CheckIn {\r\n static statusNameDict: { [key: number]: string } = {\r\n 0: '未標記',\r\n 1: '很熟悉',\r\n 2: '應注意',\r\n 3: '很危險',\r\n };\r\n static statusClassNameDict: { [key: number]: string } = {\r\n 0: 'gray',\r\n 1: 'green',\r\n 2: 'orange',\r\n 3: 'red',\r\n };\r\n // 總打卡次數\r\n total_count: number;\r\n // 當前狀態\r\n status: number;\r\n // 最新打卡時間\r\n time: Date;\r\n\r\n\r\n // 當前狀態名稱\r\n // status_name: string;\r\n // 個別狀態打卡次數\r\n status_count: { [key: number]: number };\r\n // 打卡紀錄\r\n log: CheckInLogLawArticle[];\r\n\r\n // get totalCount(): number {\r\n // return Object.values(this.status_count)\r\n // .reduce((t, c) => {\r\n // return t + c;\r\n // }, 0);\r\n // }\r\n // get lastStatusName(): string {\r\n // if (this.log.length > 0) {\r\n // return CheckInLawArticle.statusNameDict[this.log[this.log.length - 1].status] || '';\r\n // }\r\n // return '';\r\n // }\r\n\r\n // 是否啟用打卡\r\n enableCheckIn: boolean;\r\n // 今日是否已經打卡過\r\n today_checked: boolean;\r\n\r\n // 等待打卡中\r\n isWaitCheckIn: boolean;\r\n // 送出打卡\r\n onCheckIn: (status: number) => void;\r\n // checkInObserver: (\r\n // law_rule_id: string,\r\n // system_number: number,\r\n // system_subnumber: number,\r\n // status: number\r\n // ) => Observable;\r\n\r\n // 等待資料讀取\r\n isWaitLoadingData: boolean;\r\n // // 更新打卡資料\r\n // onUpdateCheckInDataSystem: () => void;\r\n // updateCheckInDataObserver: (\r\n // law_rule_id: string,\r\n // system_number: number,\r\n // system_subnumber: number\r\n // ) => Observable;\r\n\r\n // 0或小於0=全部\r\n count_past_day: number;\r\n\r\n // 體系ID\r\n lawSystemId: string;\r\n law_rule_id: string;\r\n system_number: number;\r\n system_subnumber: number;\r\n get numberHash(): string { return this.system_number + '-' + this.system_subnumber; }\r\n\r\n\r\n constructor(\r\n law_rule_id: string,\r\n system_number: number,\r\n system_subnumber: number,\r\n ) {\r\n this.status = 0;\r\n this.status_count = {};\r\n this.log = [];\r\n // this.checkInObserver = checkInObserver;\r\n // this.updateCheckInDataObserver = updateCheckInDataObserver;\r\n this.law_rule_id = law_rule_id;\r\n this.system_number = system_number;\r\n this.system_subnumber = system_subnumber;\r\n this.count_past_day = 0;\r\n this.isWaitCheckIn = false;\r\n this.isWaitLoadingData = false;\r\n this.enableCheckIn = true;\r\n }\r\n\r\n updateFromDataNote(noteData: CheckInDataLawArticleNote): void {\r\n this.enableCheckIn = !noteData.today_checked;\r\n this.today_checked = noteData.today_checked;\r\n this.total_count = noteData.total_check_in_count;\r\n // this.time = new Date(Date.parse(noteData.last_check_in_time));\r\n this.time = noteData.last_check_in_time;\r\n this.status = 0;\r\n if (noteData.last_check_in_status != null) {\r\n this.status = noteData.last_check_in_status;\r\n }\r\n }\r\n updateFromDataSystem(systemData: CheckInDataLawArticleSystem): void {\r\n this.log = systemData.log;\r\n this.status_count = systemData.status_count;\r\n\r\n Object.keys(CheckInLawArticle.statusNameDict)\r\n .forEach((_i => {\r\n const i = parseInt(_i, 10);\r\n if (this.status_count[i] == null) {\r\n this.status_count[i] = 0;\r\n }\r\n }));\r\n this.total_count = Object.values(this.status_count).reduce((s, v) => s + v, 0);\r\n this.status = 0;\r\n if (this.log && this.log.length > 0) {\r\n this.status = this.log[0].status;\r\n }\r\n\r\n this.today_checked = systemData.today_checked;\r\n }\r\n updateFromCheckInLawArticle(data: CheckInLawArticle): void {\r\n this.log = data.log;\r\n this.status_count = data.status_count;\r\n\r\n Object.keys(CheckInLawArticle.statusNameDict)\r\n .forEach((_i => {\r\n const i = parseInt(_i, 10);\r\n if (this.status_count[i] == null) {\r\n this.status_count[i] = 0;\r\n }\r\n }));\r\n\r\n this.total_count = Object.values(this.status_count).reduce((s, v) => s + v, 0);\r\n this.status = 0;\r\n if (this.log && this.log.length > 0) {\r\n this.status = this.log[0].status;\r\n }\r\n\r\n this.today_checked = data.today_checked;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { Serializable } from '../serializable';\r\n\r\n\r\n\r\nclass CheckinFilterMember {\r\n team_member_id: string;\r\n name: string;\r\n picture: string;\r\n checkin_status: number;\r\n selected: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-checkin-team-filter-popup',\r\n templateUrl: './checkin-team-filter-popup.component.html',\r\n styleUrls: ['./checkin-team-filter-popup.component.scss']\r\n})\r\nexport class CheckinTeamFilterPopupComponent implements OnInit {\r\n\r\n keyword: string = '';\r\n members: CheckinFilterMember[] = [];\r\n baseMembers: CheckinFilterMember[] = [];\r\n selectedMember: CheckinFilterMember;\r\n isAllSelected: boolean = false;\r\n selectedCheckinStatus: number = -1;\r\n get disableConfirmButton(): boolean {\r\n return this.selectedMember == null || this.selectedCheckinStatus == -1;\r\n }\r\n\r\n onConfirm: () => void;\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit(): void { }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n setup(members: CheckinFilterMember[]): void {\r\n this.baseMembers = members.map(m => Serializable.extend(new CheckinFilterMember(), m));\r\n this.updateSearch('');\r\n }\r\n updateSearch(keyword: string): void {\r\n if (keyword == '') {\r\n this.members = this.baseMembers;\r\n } else {\r\n this.members = this.baseMembers.filter(m => {\r\n let _name = '';\r\n if (m.name) {\r\n _name = m.name;\r\n }\r\n const isMatch = _name.toLowerCase().indexOf(keyword.toLowerCase()) > -1;\r\n return isMatch;\r\n });\r\n }\r\n }\r\n clearKeyword(): void {\r\n this.keyword = '';\r\n this.updateSearch('');\r\n }\r\n selectMember(member: CheckinFilterMember): void {\r\n this.selectedMember = member;\r\n }\r\n selectCheckinStatus(status: number): void {\r\n this.selectedCheckinStatus = status;\r\n }\r\n clickConfirm(): void {\r\n this.onConfirm();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
燈號篩選
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
灰燈
\r\n
\r\n
\r\n
\r\n
\r\n
綠燈
\r\n
\r\n
\r\n
\r\n
\r\n
橘燈
\r\n
\r\n
\r\n
\r\n
\r\n
紅燈
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
確認
\r\n
\r\n
\r\n
取消
\r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from 'projects/mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CheckinTeamFilterPopupComponent } from './checkin-team-filter-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PipeHighlightModule } from '../pipe-highlight/pipe-highlight.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [CheckinTeamFilterPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n PipeHighlightModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [CheckinTeamFilterPopupComponent]\r\n})\r\nexport class CheckinTeamFilterPopupModule { }\r\n","import { Directive, OnInit, OnDestroy, Input, ElementRef, Type, ComponentRef, AfterContentInit } from '@angular/core';\r\nimport { IChooseKindItem } from './i-choose-kind-item';\r\nimport { log } from 'util';\r\n\r\n@Directive({\r\n selector: '[appChooseKindItem]'\r\n})\r\nexport class ChooseKindItemDirective implements OnInit, OnDestroy, AfterContentInit {\r\n @Input() appChooseKindItem: ComponentRef;\r\n\r\n\r\n constructor(\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // console.log('dir init');\r\n this.appChooseKindItem.instance.onAfterContentInit.subscribe(() => {\r\n this.appendType(this.elementRef.nativeElement, this.appChooseKindItem);\r\n });\r\n // console.log(this.elementRef, this.appChooseKindItem);\r\n // throw new Error(\"Method not implementeds.\");\r\n }\r\n ngAfterContentInit(): void {\r\n // console.log('dir after content init');\r\n }\r\n ngOnDestroy(): void {\r\n // console.log('destroy item');\r\n // (this.elementRef.nativeElement as Element).removeChild(this.appChooseKindItem.location.nativeElement);\r\n }\r\n\r\n appendType(element: Element, compmentRef: ComponentRef) {\r\n // console.log(element, compmentRef);\r\n element.appendChild(compmentRef.location.nativeElement);\r\n }\r\n}\r\n","import { Component, OnInit, ComponentRef, ComponentFactoryResolver, Injector, ApplicationRef, Type, Input, AfterContentInit, AfterViewInit, ViewChild, ElementRef, HostListener, Output, EventEmitter, TemplateRef, ContentChild } from '@angular/core';\r\nimport { IChooseKindItem } from './i-choose-kind-item';\r\nimport { ChooseKindItem } from './choose-kind-item';\r\nimport { SearcherKeywordKind } from '../keyword-searcher/searcher-keyword-kind';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-choose-kind',\r\n templateUrl: './choose-kind.component.html',\r\n styleUrls: ['./choose-kind.component.scss']\r\n})\r\nexport class ChooseKindComponent implements OnInit {\r\n @Input() typeList: SearcherKeywordKind[];\r\n @Input() windowStyle: any;\r\n @Input() buttonStyle: any;\r\n @Output() select: EventEmitter = new EventEmitter();\r\n @ViewChild('fileSubject', { static: true }) fileSubjectTemplate: TemplateRef;\r\n @ViewChild('pointSummary', { static: true }) pointSummaryTemplate: TemplateRef;\r\n @ViewChild('summaryTag', { static: true }) summaryTagTemplate: TemplateRef;\r\n @ViewChild('issueSortOut', { static: true }) issueSortOutTemplate: TemplateRef;\r\n @ViewChild('issueAnswer', { static: true }) issueAnswerTemplate: TemplateRef;\r\n @ViewChild('caseTag', { static: true }) caseTagTemplate: TemplateRef;\r\n @ViewChild('bookmark', { static: true }) bookmarkTemplate: TemplateRef;\r\n @ViewChild('comment', { static: true }) commentTemplate: TemplateRef;\r\n @ViewChild('composeSearch', { static: true }) composeSearchTemplate: TemplateRef;\r\n\r\n @ViewChild('lawRuleNameTemplate', { static: true }) lawRuleNameTemplate: TemplateRef;\r\n @ViewChild('lawRuleFulltextTemplate', { static: true }) lawRuleFulltextTemplate: TemplateRef;\r\n\r\n baseList: { [key in keyof typeof SearcherKeywordKind]: ChooseKindItem } = {\r\n FileSubject: { text: '筆記題目', className: 'file-subject', kind: SearcherKeywordKind.FileSubject, textDescriptionTemplate: () => this.fileSubjectTemplate },\r\n PointSummary: { text: '摘要內容', className: 'point-summary', kind: SearcherKeywordKind.PointSummary, textDescriptionTemplate: () => this.pointSummaryTemplate },\r\n SummaryTag: { text: '摘要標籤', className: 'summary-tag', kind: SearcherKeywordKind.SummaryTag, textDescriptionTemplate: () => this.summaryTagTemplate },\r\n IssueSortOut: { text: '爭點整理', className: 'issue-sort-out', kind: SearcherKeywordKind.IssueSortOut, textDescriptionTemplate: () => this.issueSortOutTemplate },\r\n IssueAnswer: { text: '爭點簡答', className: 'issue-answer', kind: SearcherKeywordKind.IssueAnswer, textDescriptionTemplate: () => this.issueAnswerTemplate },\r\n CaseTag: { text: '案件標籤', className: 'case-tag', kind: SearcherKeywordKind.CaseTag, textDescriptionTemplate: () => this.caseTagTemplate },\r\n Bookmark: { text: '段落書籤', className: 'bookmark', kind: SearcherKeywordKind.Bookmark, textDescriptionTemplate: () => this.bookmarkTemplate },\r\n Comment: { text: '隨意備註', className: 'comment', kind: SearcherKeywordKind.Comment, textDescriptionTemplate: () => this.commentTemplate },\r\n ComposeSearch: { text: '組合查找', className: 'compose-search', kind: SearcherKeywordKind.ComposeSearch, textDescriptionTemplate: () => this.composeSearchTemplate },\r\n LawRuleName: { text: '法規名稱', className: 'law-rule-name', kind: SearcherKeywordKind.LawRuleName, textDescriptionTemplate: () => this.lawRuleNameTemplate },\r\n LawRuleFulltext: { text: '法規內容', className: 'law-rule-fulltext', kind: SearcherKeywordKind.LawRuleFulltext, textDescriptionTemplate: () => this.lawRuleFulltextTemplate },\r\n JudgmentFulltext: { text: '裁判內容', className: 'judgment-fulltext', kind: SearcherKeywordKind.LawRuleFulltext, textDescriptionTemplate: () => this.lawRuleFulltextTemplate },\r\n JudicialInterpretFulltext: { text: '判解內容', className: 'judicial-interpret-fulltext', kind: SearcherKeywordKind.LawRuleFulltext, textDescriptionTemplate: () => this.lawRuleFulltextTemplate },\r\n };\r\n\r\n clickShowWindow: boolean = false;\r\n\r\n sourceList: SearcherKeywordKind[] = [];\r\n\r\n list: ChooseKindItem[] = [];\r\n\r\n prevSelectedKind: ChooseKindItem;\r\n\r\n selectedKind$: Subject = new Subject();\r\n selectedKind: ChooseKindItem;\r\n // showedKind: IChooseKindItem;\r\n\r\n viewAttached: boolean = false;\r\n windowPosition: { left: number, top: number };\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n // console.log(this.typeList, this.baseList);\r\n\r\n this.sourceList = this.typeList;\r\n this.list = this.buildList(this.sourceList);\r\n if (this.selectedKind == null) {\r\n this.selectKindItem(this.list[0]);\r\n }\r\n }\r\n buildList(list: SearcherKeywordKind[]): ChooseKindItem[] {\r\n return list.map(type => this.baseList[SearcherKeywordKind[type]]);\r\n }\r\n\r\n selectKindItem(item: ChooseKindItem): void {\r\n if (this.selectedKind !== item) {\r\n this.prevSelectedKind = this.selectedKind;\r\n }\r\n\r\n this.selectedKind = item;\r\n this.select.emit(item);\r\n this.closeWindow();\r\n }\r\n\r\n toggleWindow(): void {\r\n if (this.clickShowWindow) {\r\n this.closeWindow();\r\n } else {\r\n this.openWindow();\r\n }\r\n }\r\n openWindow(): void {\r\n this.clickShowWindow = true;\r\n }\r\n closeWindow(): void {\r\n this.clickShowWindow = false;\r\n }\r\n\r\n checkCursorClickTarget(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a === this.elementRef.nativeElement);\r\n }\r\n @HostListener('document:click', ['$event']) checkClickWindowCloseOrNot(ev: MouseEvent): void {\r\n if (!this.clickShowWindow) {\r\n return;\r\n }\r\n if (!this.checkCursorClickTarget(ev)) {\r\n this.closeWindow();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
{{selectedKind?.text}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
查找種類
\r\n
\r\n
\r\n
\r\n
{{item.text}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
使用說明
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
輸入筆記題目之部分文字
\r\n
1建議題目:成敗式
\r\n
2建議題目:結論式
\r\n
3建議題目:問題式
\r\n
4建議題目:情況式
\r\n
5建議題目:矚目式
\r\n
\r\n\r\n
輸入摘要之部分文字
\r\n
將查詢摘要註解區
\r\n
將查詢摘要內容區
\r\n
EX:確認利益
\r\n
\r\n\r\n
輸入爭點整理之部分文字
\r\n
妥善整理爭點問題有助查找
\r\n
可訓練自我整理爭點的能力
\r\n
\r\n\r\n
輸入爭點簡答之部分文字
\r\n
整理審判長就爭點的結論
\r\n
立即回憶與掌握法律理由
\r\n
\r\n\r\n
輸入案件所標籤之部分文字
\r\n
Tag 事實特徵
\r\n
Tag 重點法條
\r\n
Tag 法學名詞
\r\n
\r\n\r\n
請輸入段落書籤之標題文字
\r\n
不包含圈選之段落內容
\r\n
EX:原告起訴主張
\r\n
\r\n\r\n
輸入隨意備註之部分文字
\r\n
寫下心得感想?
\r\n
或者寫下裁判主文
\r\n
\r\n\r\n
使用多組種類關鍵字查找
\r\n
EX:題目 + 爭點 + 標籤
\r\n
需要額外開啟權限
\r\n
\r\n\r\n
使用法規名稱查找
\r\n
EX:民事訴訟法
\r\n
\r\n\r\n
使用法規內容查找
\r\n
EX:意思表示
\r\n
\r\n\r\n
輸入摘要之部分文字
\r\n
將查詢摘要註解區
\r\n
將查詢摘要內容區
\r\n
EX:確認利益
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChooseKindComponent } from './choose-kind.component';\r\nimport { ChooseKindItemDirective } from './choose-kind-item.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ChooseKindComponent,\r\n ChooseKindItemDirective,\r\n ],\r\n exports: [\r\n ChooseKindComponent\r\n ]\r\n})\r\nexport class ChooseKindModule { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { CommentPopupComponent } from './comment-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommentPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(CommentPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(title: string, sourceText: string): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(title, sourceText);\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, ElementRef, AfterViewInit, HostListener, ComponentRef, Injector, Output, EventEmitter } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { CommentService } from 'projects/desktop/src/app/root/root-main/comment.service';\r\nimport { CaseType } from '../personal-config-popup/personal-config-popup.service';\r\n\r\n@Component({\r\n selector: 'app-comment-popup',\r\n templateUrl: './comment-popup.component.html',\r\n styleUrls: ['./comment-popup.component.scss'],\r\n // host: {\r\n // '(document:keydown)': 'checkKeydown($event)',\r\n // }\r\n})\r\nexport class CommentPopupComponent extends BasePopup implements OnInit {\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n\r\n title: string;\r\n sourceText: string;\r\n text: string;\r\n textareaElement: Element;\r\n disableSubmitButton: boolean;\r\n saving: boolean = false;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n initPopup(title: string, sourceText: string): void {\r\n // this.clickShowPopup = true;\r\n this.title = title;\r\n this.sourceText = sourceText;\r\n this.text = sourceText;\r\n this.onTextChange();\r\n\r\n setTimeout(() => {\r\n this.textareaElement = (this.elementRef.nativeElement as Element)\r\n .querySelector(':scope>.comment-popup>.popup-window>.window-content>.keyin-block>textarea');\r\n (this.textareaElement as any).focus();\r\n }, 1);\r\n }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n onTextChange(): void {\r\n this.disableSubmitButton = this.text.trim() === this.sourceText.trim();\r\n }\r\n reset(): void {\r\n this.text = '';\r\n this.onTextChange();\r\n }\r\n clickSubmit(): void {\r\n this.saving = true;\r\n this.submit.emit(this.text);\r\n }\r\n\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{title}}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
{{text.length}} / 250
\r\n
\r\n
\r\n
確認送出
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from 'projects/mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CommentPopupComponent } from './comment-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [CommentPopupComponent],\r\n exports: [CommentPopupComponent]\r\n})\r\nexport class CommentPopupModule { }\r\n","import { Component, OnInit, ViewChild, Output, EventEmitter, HostListener, ElementRef } from '@angular/core';\r\nimport { ComposeCommandComponent } from '../compose-command/compose-command.component';\r\nimport { InputText } from '../compose-search-popup/input-text';\r\nimport { SearcherKeyword } from '../keyword-searcher/searcher-keyword';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { PopupCloseReason } from 'projects/lwlib/src/popup-close-reason';\r\nimport { ChooseKindComponent } from '../choose-kind/choose-kind.component';\r\nimport { ComposeType } from '../compose-search-popup/compose-type';\r\nimport { SearcherKeywordKind } from '../keyword-searcher/searcher-keyword-kind';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { FilterCondition } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/filter-condition';\r\n\r\n@Component({\r\n selector: 'app-complete-search-popup',\r\n templateUrl: './complete-search-popup.component.html',\r\n styleUrls: ['./complete-search-popup.component.scss']\r\n})\r\nexport class CompleteSearchPopupComponent extends BasePopup implements OnInit {\r\n popupCloseReason: any = PopupCloseReason;\r\n @ViewChild('composeCommand2', { static: true }) composeCommand2: ComposeCommandComponent;\r\n @ViewChild('composeCommand3', { static: true }) composeCommand3: ComposeCommandComponent;\r\n\r\n @ViewChild('inputFirstElement', { static: true }) inputFirstElement: ElementRef;\r\n\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n\r\n clickShowPopup: boolean = true;\r\n clickEmptyCheckLock: boolean = false;\r\n closeReason: PopupCloseReason;\r\n\r\n inputText1: InputText = new InputText();\r\n inputText2: InputText = new InputText();\r\n inputText3: InputText = new InputText();\r\n\r\n saveName: string = 'complete-search-condition';\r\n\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n private service: AppService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n focusInput(): void {\r\n this.inputFirstElement.nativeElement.focus();\r\n }\r\n\r\n // 初始化彈窗\r\n initPopup(): void {\r\n setTimeout(() => {\r\n this.loadInput();\r\n this.focusInput();\r\n }, 1);\r\n }\r\n // 關閉彈窗\r\n closePopup(closeReason: PopupCloseReason): void {\r\n this.clickShowPopup = false;\r\n this.closeReason = closeReason;\r\n\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n submitClosePopup(): void {\r\n this.closePopup(PopupCloseReason.Submit);\r\n }\r\n manuallyClosePopup(): void {\r\n this.closePopup(PopupCloseReason.ManuallyClose);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n if (ev.keyCode === 27\r\n && this.popupManagerService.getLastComponentRef() === this.componentRef) {\r\n this.manuallyClosePopup();\r\n }\r\n }\r\n\r\n\r\n // 清除重填\r\n clearRewrite(): void {\r\n this.inputText1.clear();\r\n this.inputText2.clear();\r\n this.inputText3.clear();\r\n this.saveInput();\r\n }\r\n // 停用送出按鈕\r\n disableSubmitButton(): boolean {\r\n let disable = false;\r\n\r\n if (\r\n this.inputText1.isEmpty()\r\n && this.inputText2.isEmpty()\r\n && this.inputText3.isEmpty()\r\n ) {\r\n disable = true;\r\n } else if (\r\n this.inputText1.isEmpty()\r\n && this.composeCommand2.selectedTypeItem.type === ComposeType.Not\r\n ) {\r\n disable = true;\r\n } else if (\r\n this.inputText1.isEmpty()\r\n && this.inputText2.isEmpty()\r\n && (\r\n this.composeCommand2.selectedTypeItem.type === ComposeType.Not\r\n || this.composeCommand3.selectedTypeItem.type === ComposeType.Not\r\n )\r\n ) {\r\n disable = true;\r\n }\r\n\r\n return disable;\r\n }\r\n\r\n\r\n // 取檢索關鍵字\r\n getSearcherKeyword(\r\n index: number,\r\n // chooseKind: ChooseKindComponent,\r\n composeCommandComponent: ComposeCommandComponent,\r\n inputText: InputText\r\n ): SearcherKeyword {\r\n const keyword: SearcherKeyword = new SearcherKeyword();\r\n\r\n keyword.index = index;\r\n\r\n keyword.kind = SearcherKeywordKind.ComposeSearch;\r\n\r\n keyword.compose = composeCommandComponent ?\r\n composeCommandComponent.selectedTypeItem.type\r\n : ComposeType.And;\r\n\r\n keyword.keyword = inputText.text;\r\n\r\n return keyword;\r\n }\r\n // 點擊送出\r\n clickSubmit(): void {\r\n const result = FilterCondition.emptySearchKeywords();\r\n\r\n result[0] = this.getSearcherKeyword(0, null, this.inputText1);\r\n result[1] = this.getSearcherKeyword(1, this.composeCommand2, this.inputText2);\r\n result[2] = this.getSearcherKeyword(2, this.composeCommand3, this.inputText3);\r\n\r\n this.submit.emit(result);\r\n this.submitClosePopup();\r\n }\r\n\r\n\r\n\r\n // 清除指定輸入框\r\n clearTextInput(textInput: InputText): void {\r\n textInput.clear();\r\n this.saveInput();\r\n }\r\n\r\n // 儲存輸入紀錄\r\n saveInput(): void {\r\n const save = {\r\n text1: this.inputText1.text.trim(),\r\n text2: this.inputText2.text.trim(),\r\n text3: this.inputText3.text.trim(),\r\n compose2: this.composeCommand2.selectedTypeItem.type,\r\n compose3: this.composeCommand3.selectedTypeItem.type\r\n };\r\n // console.log(save);\r\n const saveJson = JSON.stringify(save);\r\n // console.log(saveJson);\r\n this.service.setLocal(this.saveName, saveJson);\r\n }\r\n // 讀取輸入紀錄\r\n loadInput(): void {\r\n const saveJson: any = this.service.getLocal(this.saveName);\r\n // console.log(saveJson);\r\n\r\n if (saveJson != null) {\r\n try {\r\n const save = JSON.parse(saveJson);\r\n this.inputText1.text = save.text1;\r\n this.inputText2.text = save.text2;\r\n this.inputText3.text = save.text3;\r\n\r\n const composeTypeItem2 = this.composeCommand2.baseList[ComposeType[parseInt(save.compose2, 10)]];\r\n const composeTypeItem3 = this.composeCommand3.baseList[ComposeType[parseInt(save.compose3, 10)]];\r\n\r\n // console.log(composeTypeItem2);\r\n // console.log(composeTypeItem3);\r\n\r\n this.composeCommand2.selectType(composeTypeItem2);\r\n this.composeCommand3.selectType(composeTypeItem3);\r\n\r\n } catch (error) {\r\n this.service.removeLocal(this.saveName);\r\n }\r\n }\r\n }\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) closeMenu(ev: MouseEvent) {\r\n if (this.checkCursorClickClassName(ev, 'complete-search-popup')\r\n && this.checkCursorClickClassName(ev, 'mask-full-screen')) {\r\n this.manuallyClosePopup();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
全面檢索
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n \r\n
\r\n
清除
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n \r\n
\r\n
清除
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
全文檢索
\r\n
\r\n \r\n
\r\n
清除
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 全面檢索\r\n
\r\n
\r\n 大海撈針,也能有效分類。\r\n
為您進行全國「裁判資料」、「司法判解」及「法規資料」\r\n
等三大類資料庫檢索服務並依拘束力之高低,陳列出查找結果。\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
送出查詢
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from 'projects/mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CompleteSearchPopupComponent } from './complete-search-popup.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { ChooseKindModule } from '../choose-kind/choose-kind.module';\r\nimport { ComposeCommandModule } from '../compose-command/compose-command.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MaskFullScreenModule,\r\n ChooseKindModule,\r\n ComposeCommandModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [\r\n CompleteSearchPopupComponent\r\n ],\r\n exports: [\r\n CompleteSearchPopupComponent\r\n ]\r\n})\r\nexport class CompleteSearchPopupModule { }\r\n","import { Component, OnInit, ElementRef, HostListener, ViewChild } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { trigger, transition, animate, keyframes, style } from '@angular/animations';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-complete-search-tip-popup',\r\n templateUrl: './complete-search-tip-popup.component.html',\r\n styleUrls: ['./complete-search-tip-popup.component.scss'],\r\n animations: [\r\n trigger('copyedTextAnimation', [\r\n transition('*=>true', animate('800ms', keyframes([\r\n style({ color: 'rgba(0,0,0, 1.0)' }),\r\n style({ color: 'rgba(0,0,0, 0.0)' })\r\n ])))\r\n ])\r\n ]\r\n})\r\nexport class CompleteSearchTipPopupComponent extends BasePopup implements OnInit {\r\n @ViewChild('copyTextElement', { static: true }) copyTextElement: ElementRef;\r\n\r\n copyedState: boolean = false;\r\n share_text: string = 'Legal Works 全面檢索幫我省時間!';\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n public dialogRef: MatDialogRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n initPopup(): void { }\r\n closePopup(): void {\r\n // this.popupManagerService.closeComponent(this.componentRef);\r\n this.dialogRef.close();\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n\r\n /** 複製 */\r\n copyText(text: string): void {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = text;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n selectElement(element: Element): void {\r\n const range = document.createRange();\r\n range.selectNode(element);\r\n const selection = window.getSelection();\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n }\r\n copyContent(): void {\r\n this.copyText(this.share_text);\r\n this.selectElement(this.copyTextElement.nativeElement);\r\n this.copyedState = true;\r\n }\r\n resetCopy(): void {\r\n this.copyedState = false;\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
全面檢索
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
如何取得功能授權?
\r\n
\r\n
\r\n
邀請您參加粉專活動貼文推廣活動,開通隱藏功能!
\r\n
\r\n \r\n
\r\n
前往活動貼文
\r\n
\r\n
\r\n
\r\n
操作步驟:
\r\n
\r\n
\r\n
1. 於活動貼文下「留言」:全面檢索幫我省時間
\r\n
2. 進行「分享」並設定「公開」。
\r\n
3. \r\n 傳送LINE@給客服\r\n ,請求開通。
\r\n
\r\n
\r\n
\r\n
功能用途:
\r\n
\r\n
\r\n
1. 搜尋全部法律資料庫。
\r\n
2. 提供多組關鍵字合作。
\r\n
3. 依據拘束力高低排列。
\r\n \r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CompleteSearchTipPopupComponent } from './complete-search-tip-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [CompleteSearchTipPopupComponent],\r\n exports: [CompleteSearchTipPopupComponent]\r\n})\r\nexport class CompleteSearchTipPopupModule { }\r\n","import { Component, OnInit, HostListener, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ComposeCommandItem } from './compose-command-item';\r\nimport { ComposeType } from '../compose-search-popup/compose-type';\r\nimport { ComposeCommandStyleType } from './compse-command-style-type.enum';\r\n\r\n@Component({\r\n selector: 'app-compose-command',\r\n templateUrl: './compose-command.component.html',\r\n styleUrls: ['./compose-command.component.scss']\r\n})\r\nexport class ComposeCommandComponent implements OnInit {\r\n\r\n baseList: { [key in keyof typeof ComposeType]: ComposeCommandItem } = {\r\n And: { type: ComposeType.And, className: 'and', text: '及' },\r\n Or: { type: ComposeType.Or, className: 'or', text: '或' },\r\n Not: { type: ComposeType.Not, className: 'not', text: '不要' },\r\n };\r\n\r\n // @Input('disableGetter') disableGetter: () => boolean;\r\n @Input('initValue') initValue: ComposeType = ComposeType.And;\r\n @Input('importStyleType') importStyleType: ComposeCommandStyleType = ComposeCommandStyleType.ComposeSearch;\r\n @Output() select: EventEmitter = new EventEmitter();\r\n\r\n\r\n styleType: { [key in keyof typeof ComposeCommandStyleType]: string } = {\r\n ComposeSearch: 'compose-search',\r\n JudgmentSearch: 'judgment-search',\r\n SearchAgain: 'search-again',\r\n };\r\n\r\n // disableGetter: () => boolean;\r\n // isDisable: () => boolean;\r\n disable: boolean;\r\n\r\n list: ComposeCommandItem[] = [];\r\n\r\n clickShowWindow: boolean = false;\r\n selectedTypeItem: ComposeCommandItem;\r\n\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n ) {\r\n this.list = [\r\n this.baseList.And,\r\n this.baseList.Or,\r\n this.baseList.Not,\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n const name = ComposeType[this.initValue];\r\n if (this.selectedTypeItem == null) {\r\n this.selectedTypeItem = this.baseList[name];\r\n }\r\n console.log(this.initValue, name, this.selectedTypeItem, this.list, this.baseList);\r\n\r\n // this.selectType(this.baseList[name]);\r\n // if (this.initValue != null) {\r\n // }\r\n // if (!this.selectedTypeItem) {\r\n // this.selectType(this.list[0]);\r\n // }\r\n }\r\n getStyleType(): string {\r\n return this.styleType[ComposeCommandStyleType[this.importStyleType]];\r\n }\r\n\r\n clickSelectType(item: ComposeCommandItem): void {\r\n this.selectType(item);\r\n this.select.emit(item.type);\r\n this.closeWindow();\r\n }\r\n selectType(item: ComposeCommandItem): void {\r\n this.selectedTypeItem = item;\r\n }\r\n selectByComposeType(type: ComposeType): void {\r\n this.selectedTypeItem = this.list.find(v => v.type === type);\r\n }\r\n\r\n\r\n decideClickShowWindow(): void {\r\n if (this.clickShowWindow) {\r\n this.closeWindow();\r\n } else {\r\n this.openWindow();\r\n }\r\n }\r\n openWindow(): void {\r\n this.clickShowWindow = true;\r\n }\r\n closeWindow(): void {\r\n this.clickShowWindow = false;\r\n }\r\n\r\n checkCursorClickTarget(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a === this.elementRef.nativeElement);\r\n }\r\n @HostListener('document:click', ['$event']) checkClickWindowCloseOrNot(ev: MouseEvent): void {\r\n if (!this.clickShowWindow) {\r\n return;\r\n }\r\n if (!this.checkCursorClickTarget(ev)) {\r\n this.closeWindow();\r\n }\r\n }\r\n\r\n // getDisable(): boolean {\r\n // if (this.disableGetter != null) {\r\n // return this.disableGetter();\r\n // } else {\r\n // return this.disable;\r\n // }\r\n // }\r\n}\r\n","
\r\n
\r\n
\r\n
{{selectedTypeItem?.text}}
\r\n
\r\n
\r\n
\r\n
\r\n
組合指令
\r\n
\r\n
\r\n
\r\n
{{item.text}}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ComposeCommandComponent } from './compose-command.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [ComposeCommandComponent],\r\n exports: [ComposeCommandComponent]\r\n})\r\nexport class ComposeCommandModule { }\r\n","export enum ComposeCommandStyleType {\r\n ComposeSearch = 0,\r\n JudgmentSearch = 1,\r\n SearchAgain = 2\r\n}\r\n","import { Component, OnInit, ElementRef, Type, HostListener, ViewChild, Output, EventEmitter, Input } from '@angular/core';\r\nimport { KeywordSearcherListItem } from '../keyword-searcher/keyword-searcher-list-item';\r\nimport { InputText } from './input-text';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { IChooseKindItem } from '../choose-kind/i-choose-kind-item';\r\nimport { SearcherKeywordKind } from '../keyword-searcher/searcher-keyword-kind';\r\nimport { ChooseKindItem } from '../choose-kind/choose-kind-item';\r\nimport { ChooseKindComponent } from '../choose-kind/choose-kind.component';\r\nimport { ComposeCommandComponent } from '../compose-command/compose-command.component';\r\nimport { ComposeCommandItem } from '../compose-command/compose-command-item';\r\nimport { filter } from 'rxjs/operators';\r\nimport { PopupCloseReason } from 'projects/lwlib/src/popup-close-reason';\r\nimport { SearcherKeyword } from '../keyword-searcher/searcher-keyword';\r\nimport { ComposeType } from './compose-type';\r\nimport { MatAutocomplete } from '@angular/material/autocomplete';\r\nimport { of, Observable, Subscription } from 'rxjs';\r\nimport { FilterCondition } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/filter-condition';\r\n\r\n\r\n@Component({\r\n selector: 'app-compose-search-popup',\r\n templateUrl: './compose-search-popup.component.html',\r\n styleUrls: ['./compose-search-popup.component.scss'],\r\n // host: {\r\n // '(document:keydown)': 'checkKeydown($event)',\r\n // '(document:click)': 'checkAllClickWindowCloseOrNot($event);',\r\n // }\r\n})\r\nexport class ComposeSearchPopupComponent extends BasePopup implements OnInit {\r\n @Input() kindAutocomplete: { [key: string]: (keyword: string) => Observable };\r\n @Input() filterCondition: FilterCondition;\r\n @Input() kindList: SearcherKeywordKind[];\r\n\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n\r\n // kindList: SearcherKeywordKind[] = [\r\n // SearcherKeywordKind.FileSubject,\r\n // SearcherKeywordKind.PointSummary,\r\n // SearcherKeywordKind.IssueSortOut,\r\n // SearcherKeywordKind.IssueAnswer,\r\n // SearcherKeywordKind.CaseTag,\r\n // SearcherKeywordKind.Bookmark,\r\n // SearcherKeywordKind.Comment,\r\n // ];\r\n\r\n windowStyle1 = { left: '-395px', top: 0 };\r\n windowStyle2 = { left: '-395px', top: '-60px' };\r\n windowStyle3 = { left: '-395px', top: '-120px' };\r\n\r\n buttonStyle = { height: '40px' };\r\n\r\n @ViewChild('chooseKind1') chooseKind1: ChooseKindComponent;\r\n @ViewChild('chooseKind2') chooseKind2: ChooseKindComponent;\r\n @ViewChild('chooseKind3') chooseKind3: ChooseKindComponent;\r\n\r\n @ViewChild('composeCommand2') composeCommand2: ComposeCommandComponent;\r\n @ViewChild('composeCommand3') composeCommand3: ComposeCommandComponent;\r\n\r\n @ViewChild('auto1') autoComplete1: MatAutocomplete;\r\n @ViewChild('auto2') autoComplete2: MatAutocomplete;\r\n @ViewChild('auto3') autoComplete3: MatAutocomplete;\r\n\r\n inputText1: InputText = new InputText();\r\n inputText2: InputText = new InputText();\r\n inputText3: InputText = new InputText();\r\n\r\n\r\n\r\n // filterCondition: FilterCondition;\r\n\r\n clickShowPopup: boolean = true;\r\n closeReason: PopupCloseReason;\r\n\r\n suggestions1: Observable = of([]);\r\n suggestions2: Observable = of([]);\r\n suggestions3: Observable = of([]);\r\n suggestionSubscribe: Subscription;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n // 清除重填\r\n clearRewrite(): void {\r\n this.inputText1.clear();\r\n this.inputText2.clear();\r\n this.inputText3.clear();\r\n\r\n this.suggestions1 = of([]);\r\n this.suggestions2 = of([]);\r\n this.suggestions3 = of([]);\r\n }\r\n clear1(): void {\r\n this.inputText1.clear();\r\n this.suggestions1 = of([]);\r\n }\r\n clear2(): void {\r\n this.inputText2.clear();\r\n this.suggestions2 = of([]);\r\n }\r\n clear3(): void {\r\n this.inputText3.clear();\r\n this.suggestions3 = of([]);\r\n }\r\n\r\n disableSubmitButton(): boolean {\r\n return this.inputText1.isEmpty()\r\n && this.inputText2.isEmpty()\r\n && this.inputText3.isEmpty();\r\n }\r\n\r\n\r\n onKeywordInput1(): void {\r\n const selectedKindId = this.chooseKind1.selectedKind.kind;\r\n const selectedKindIdName = SearcherKeywordKind[selectedKindId];\r\n\r\n if (this.suggestionSubscribe) {\r\n this.suggestionSubscribe.unsubscribe();\r\n this.suggestionSubscribe = null;\r\n }\r\n if (this.kindAutocomplete\r\n && this.kindAutocomplete[selectedKindIdName] != null) {\r\n this.suggestionSubscribe = this.kindAutocomplete[selectedKindIdName](this.inputText1.text)\r\n .subscribe(suggestions => {\r\n this.suggestions1 = of(suggestions);\r\n });\r\n }\r\n }\r\n onKeywordInput2(): void {\r\n const selectedKindId = this.chooseKind2.selectedKind.kind;\r\n const selectedKindIdName = SearcherKeywordKind[selectedKindId];\r\n\r\n if (this.suggestionSubscribe) {\r\n this.suggestionSubscribe.unsubscribe();\r\n this.suggestionSubscribe = null;\r\n }\r\n if (this.kindAutocomplete\r\n && this.kindAutocomplete[selectedKindIdName] != null) {\r\n this.suggestionSubscribe = this.kindAutocomplete[selectedKindIdName](this.inputText2.text)\r\n .subscribe(suggestions => {\r\n this.suggestions2 = of(suggestions);\r\n });\r\n }\r\n }\r\n onKeywordInput3(): void {\r\n const selectedKindId = this.chooseKind3.selectedKind.kind;\r\n const selectedKindIdName = SearcherKeywordKind[selectedKindId];\r\n\r\n if (this.suggestionSubscribe) {\r\n this.suggestionSubscribe.unsubscribe();\r\n this.suggestionSubscribe = null;\r\n }\r\n if (this.kindAutocomplete\r\n && this.kindAutocomplete[selectedKindIdName] != null) {\r\n this.suggestionSubscribe = this.kindAutocomplete[selectedKindIdName](this.inputText3.text)\r\n .subscribe(suggestions => {\r\n this.suggestions3 = of(suggestions);\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n clickAutoCompleteOption1(ev: any): void {\r\n this.inputText1.text = ev.option.value;\r\n }\r\n clickAutoCompleteOption2(ev: any): void {\r\n this.inputText2.text = ev.option.value;\r\n }\r\n clickAutoCompleteOption3(ev: any): void {\r\n this.inputText3.text = ev.option.value;\r\n }\r\n\r\n\r\n getSearcherKeyword(\r\n index: number,\r\n chooseKind: ChooseKindComponent,\r\n composeCommandComponent: ComposeCommandComponent,\r\n inputText: InputText\r\n ): SearcherKeyword {\r\n const keyword: SearcherKeyword = new SearcherKeyword();\r\n\r\n keyword.index = index;\r\n\r\n keyword.kind = chooseKind.selectedKind.kind;\r\n\r\n keyword.compose = composeCommandComponent ?\r\n composeCommandComponent.selectedTypeItem.type\r\n : ComposeType.And;\r\n\r\n keyword.keyword = inputText.text;\r\n\r\n return keyword;\r\n }\r\n clickSubmit(): void {\r\n const result = FilterCondition.emptySearchKeywords();\r\n\r\n result[0] = this.getSearcherKeyword(0, this.chooseKind1, null, this.inputText1);\r\n result[1] = this.getSearcherKeyword(1, this.chooseKind2, this.composeCommand2, this.inputText2);\r\n result[2] = this.getSearcherKeyword(2, this.chooseKind3, this.composeCommand3, this.inputText3);\r\n\r\n this.submit.emit(result);\r\n this.submitClosePopup();\r\n }\r\n\r\n initPopup(\r\n filterCondition: FilterCondition,\r\n inputKindList: SearcherKeywordKind[],\r\n ): void {\r\n this.filterCondition = filterCondition;\r\n\r\n if (inputKindList != null) {\r\n this.kindList = inputKindList;\r\n }\r\n\r\n setTimeout(() => {\r\n if (filterCondition.searchKeywords[0].kind != null && filterCondition.searchKeywords[0].kind !== SearcherKeywordKind.ComposeSearch) {\r\n this.chooseKind1.selectKindItem(this.chooseKind1.baseList[SearcherKeywordKind[filterCondition.searchKeywords[0].kind]]);\r\n }\r\n if (filterCondition.searchKeywords[1].kind != null) {\r\n this.chooseKind2.selectKindItem(this.chooseKind1.baseList[SearcherKeywordKind[filterCondition.searchKeywords[1].kind]]);\r\n }\r\n if (filterCondition.searchKeywords[2].kind != null) {\r\n this.chooseKind3.selectKindItem(this.chooseKind1.baseList[SearcherKeywordKind[filterCondition.searchKeywords[2].kind]]);\r\n }\r\n\r\n this.inputText1.text = filterCondition.searchKeywords[0].keyword;\r\n this.inputText2.text = filterCondition.searchKeywords[1].keyword;\r\n this.inputText3.text = filterCondition.searchKeywords[2].keyword;\r\n\r\n if (filterCondition.searchKeywords[1].compose != null) {\r\n this.composeCommand2.selectType(this.composeCommand2.baseList[ComposeType[filterCondition.searchKeywords[1].compose]]);\r\n }\r\n if (filterCondition.searchKeywords[2].compose != null) {\r\n this.composeCommand3.selectType(this.composeCommand2.baseList[ComposeType[filterCondition.searchKeywords[2].compose]]);\r\n }\r\n }, 1);\r\n }\r\n\r\n\r\n closePopup(closeReason: PopupCloseReason): void {\r\n this.clickShowPopup = false;\r\n this.closeReason = closeReason;\r\n\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n submitClosePopup(): void {\r\n this.closePopup(PopupCloseReason.Submit);\r\n }\r\n manuallyClosePopup(): void {\r\n this.closePopup(PopupCloseReason.ManuallyClose);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n if (ev.keyCode === 27\r\n && this.popupManagerService.getLastComponentRef() === this.componentRef) {\r\n this.manuallyClosePopup();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
組合查找
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
清除
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
清除
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
清除
\r\n
\r\n
\r\n
\r\n
送出查詢\r\n
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ComposeSearchPopupComponent } from './compose-search-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { ChooseKindModule } from '../choose-kind/choose-kind.module';\r\nimport { ComposeCommandModule } from '../compose-command/compose-command.module';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MaskFullScreenModule,\r\n ChooseKindModule,\r\n ComposeCommandModule,\r\n MatAutocompleteModule,\r\n PipeHighlightModule,\r\n ],\r\n declarations: [\r\n ComposeSearchPopupComponent\r\n ],\r\n exports: [\r\n ComposeSearchPopupComponent\r\n ]\r\n})\r\nexport class ComposeSearchPopupModule { }\r\n","export enum ComposeType {\r\n And = 0,\r\n Or = 1,\r\n Not = 2\r\n}\r\n","export class InputText {\r\n text: string = '';\r\n clear(): void {\r\n this.text = '';\r\n }\r\n isEmpty(): boolean {\r\n return this.text.length === 0;\r\n }\r\n}\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-concat-popup',\r\n templateUrl: './concat-popup.component.html',\r\n styleUrls: ['./concat-popup.component.scss']\r\n})\r\nexport class ConcatPopupComponent implements OnInit {\r\n\r\n constructor(\r\n // private popupManagerService: PopupManagerService,\r\n public dialogRef: MatDialogRef,\r\n ) {\r\n // super();\r\n }\r\n\r\n ngOnInit() { }\r\n initPopup() { }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n // this.popupManagerService.closeComponent(this.componentRef);\r\n this.dialogRef.close();\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.closePopup();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
登入授權
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Legal Works 已於 2018/12/6 更新至 V1.0 版本
\r\n
\r\n
\r\n
\r\n
如何取得登入授權?
\r\n
\r\n
\r\n
敬請您參加粉專活動貼文推廣活動,以示鼓勵!
\r\n
\r\n \r\n
\r\n
前往活動貼文
\r\n
\r\n
\r\n
\r\n
操作步驟:
\r\n
\r\n
\r\n
1. 於活動貼文下「留言」:我要開通權限。
\r\n
2. 進行「分享」並設定「公開」。
\r\n
3. \r\n 傳送LINE@給客服\r\n ,請求開通。
\r\n
\r\n
\r\n
\r\n
版本更新重點:
\r\n
\r\n
\r\n
1. 使用者介面更新。
\r\n
2. 筆記倉庫新增「個人化」設定。
\r\n
3. 檢索系統新增「簡易/專業」搜尋模式。
\r\n
4. 加強優化資料搜尋與存取效率。
\r\n
5. 法規筆記作業系統新增「摘要功能列」。
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ConcatPopupComponent } from './concat-popup.component';\r\n// import { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n // MaskFullScreenModule\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [ConcatPopupComponent],\r\n exports: [ConcatPopupComponent]\r\n})\r\nexport class ConcatPopupModule { }\r\n","
\r\n
\r\n \r\n
\r\n
{{titleText}}
\r\n
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{contentData.Normal.desc}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{contentData.SetMemberLevel.desc}}
\r\n
\r\n \r\n
\r\n
{{contentData.TeamAnnounce.desc}}
\r\n
\r\n
\r\n
{{confirmButtonText}}
\r\n
{{cancelButtonText}}
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-confirm-popup',\r\n templateUrl: './confirm-popup.component.html',\r\n styleUrls: ['./confirm-popup.component.scss']\r\n})\r\nexport class ConfirmPopupComponent implements OnInit {\r\n\r\n type: string = 'normal';\r\n\r\n contentData = {\r\n Normal: {\r\n iconStyle: {} as CSSStyleDeclaration,\r\n desc: '',\r\n },\r\n SetMemberLevel: {\r\n iconFromStyle: {} as CSSStyleDeclaration,\r\n iconToStyle: {} as CSSStyleDeclaration,\r\n desc: '',\r\n },\r\n TeamAnnounce: {\r\n iconStyle: {} as CSSStyleDeclaration,\r\n desc: '',\r\n },\r\n TeamNewCase: {\r\n\r\n },\r\n TeamCaseNewDiscuss: {\r\n\r\n },\r\n };\r\n\r\n popupClass: string = '';\r\n titleText: string = '';\r\n titleStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n\r\n\r\n confirmButtonStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n confirmButtonText: string = '確定';\r\n\r\n cancelButtonStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n cancelButtonText: string = '取消';\r\n\r\n\r\n\r\n disableCancelButton: boolean = false;\r\n\r\n onConfirm: () => void;\r\n isConfirmed: boolean = false;\r\n\r\n onCancel: () => void;\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() { }\r\n closePopup(): void {\r\n this.matDialogRef.close();\r\n }\r\n\r\n clickConfirm(): void {\r\n this.isConfirmed = true;\r\n if (this.onConfirm) {\r\n this.onConfirm();\r\n }\r\n }\r\n clickCancel(): void {\r\n if (this.onCancel) {\r\n this.onCancel();\r\n } else {\r\n this.closePopup();\r\n }\r\n }\r\n}\r\n","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ConfirmPopupComponent } from './confirm-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ConfirmPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [ConfirmPopupComponent]\r\n})\r\nexport class ConfirmPopupModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-contact-support-popup',\r\n templateUrl: './contact-support-popup.component.html',\r\n styleUrls: ['./contact-support-popup.component.scss']\r\n})\r\nexport class ContactSupportPopupComponent implements OnInit {\r\n\r\n text: string = '';\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() { }\r\n closePopup(): void {\r\n this.matDialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
聯絡客服
\r\n \r\n
\r\n
\r\n \r\n
{{text}}
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ContactSupportPopupComponent } from './contact-support-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [ContactSupportPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [ContactSupportPopupComponent]\r\n})\r\nexport class ContactSupportPopupModule { }\r\n","import { Component, OnInit, ViewChild, HostListener, OnDestroy } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { Category } from '../category/category';\r\nimport { KeywordFinderLiteComponent } from '../keyword-finder-lite/keyword-finder-lite.component';\r\nimport { NumberInputerComponent } from '../number-inputer/number-inputer.component';\r\nimport { Category2 } from '../category/category2';\r\nimport { CategoryTypeId } from '../category/category-type-id.enum';\r\nimport { SubcategoryTypeId } from '../category/subcategory-type-id.enum';\r\nimport { Subcategory2 } from '../category/subcategory2';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\n\r\n@Component({\r\n selector: 'app-create-category-popup2',\r\n templateUrl: './create-category-popup2.component.html',\r\n styleUrls: ['./create-category-popup2.component.scss']\r\n})\r\nexport class CreateCategoryPopup2Component implements OnInit, OnDestroy {\r\n @ViewChild(KeywordFinderLiteComponent, { static: true }) keywordFinderLite: KeywordFinderLiteComponent;\r\n @ViewChild(NumberInputerComponent, { static: true }) numberInputer: NumberInputerComponent;\r\n\r\n categoryIconList1: any[] = [];\r\n categoryIconList2: any[] = [];\r\n subcategoryIconList: any[] = [];\r\n\r\n typeIconDict: { [key: number]: { id: number, style: CSSStyleDeclaration } } = {};\r\n\r\n title: string = '';\r\n typeId: number = 1;\r\n selectedTypeId: number = 1;\r\n typeIconStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n // selectedIcon: { id: number, style: CSSStyleDeclaration };\r\n sn: number = 1;\r\n snMax: number = 1;\r\n snMin: number = 1;\r\n text: string = '';\r\n confirmText: string = '';\r\n\r\n exwordDict: { [key: string]: number } = {};\r\n\r\n\r\n isSubcategory: boolean = false;\r\n showMenu: boolean = false;\r\n\r\n get isTypeChanged(): boolean {\r\n return this.typeId !== this.selectedTypeId;\r\n }\r\n get isTextChanged(): boolean {\r\n return this.text !== this.keywordFinderLite.inputText.text;\r\n }\r\n get isSnChanged(): boolean {\r\n return this.sn !== this.numberInputer.currentNumber;\r\n }\r\n get disableConfirmButton(): boolean {\r\n if (this.keywordFinderLite && this.keywordFinderLite.inputText.text === '') {\r\n return true;\r\n }\r\n if (this.textInputChecker && !this.textInputChecker(this.keywordFinderLite.inputText.text)) {\r\n return true;\r\n }\r\n if (this.exwordDict[this.keywordFinderLite.inputText.text]) {\r\n return true;\r\n }\r\n return !this.isTextChanged && !this.isSnChanged && !this.isTypeChanged;\r\n }\r\n\r\n onConfirm: () => void;\r\n textInputChecker: (text: string) => boolean;\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef,\r\n ) { }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n ngOnInit() {\r\n this.keywordFinderLite.inputElement.nativeElement.focus();\r\n // this.subscriptions.textChange = this.keywordFinderLite.textChange.subscribe((text: string) => {\r\n\r\n // });\r\n }\r\n closePopup(): void {\r\n this.matDialogRef.close();\r\n }\r\n setCategoryIconList(): void {\r\n this.typeIconDict = {};\r\n Object\r\n .keys(Category2.typeIdIconDict)\r\n .slice(1, 11)\r\n .forEach(typeIdText => {\r\n const typeId = CategoryTypeId[typeIdText];\r\n const iconFileName = Category2.typeIdIconDict[typeIdText];\r\n const item = {\r\n id: typeId,\r\n style: { backgroundImage: `url(/assets/img/category/${iconFileName})` } as CSSStyleDeclaration\r\n };\r\n this.typeIconDict[item.id] = item;\r\n this.categoryIconList1.push(item);\r\n });\r\n Object\r\n .keys(Category2.typeIdIconDict)\r\n .slice(11, 21)\r\n .forEach(typeIdText => {\r\n const typeId = CategoryTypeId[typeIdText];\r\n const iconFileName = Category2.typeIdIconDict[typeIdText];\r\n const item = {\r\n id: typeId,\r\n style: { backgroundImage: `url(/assets/img/category/${iconFileName})` } as CSSStyleDeclaration\r\n };\r\n this.typeIconDict[item.id] = item;\r\n this.categoryIconList2.push(item);\r\n });\r\n\r\n this.exwordDict = {};\r\n this.exwordDict[Category2.allCategory.name] = 1;\r\n this.exwordDict[Category2.unCategory.name] = 1;\r\n }\r\n setSubcategoryIconList(): void {\r\n this.typeIconDict = {};\r\n Object\r\n .keys(Subcategory2.typeIdIconDict)\r\n .slice(1, 11)\r\n .forEach(typeIdText => {\r\n const typeId = SubcategoryTypeId[typeIdText];\r\n const iconFileName = Subcategory2.typeIdIconDict[typeIdText];\r\n const item = {\r\n id: typeId,\r\n style: { backgroundImage: `url(/assets/img/subcategory/${iconFileName})` } as CSSStyleDeclaration\r\n };\r\n this.typeIconDict[item.id] = item;\r\n this.subcategoryIconList.push(item);\r\n });\r\n\r\n this.exwordDict = {};\r\n this.exwordDict[Subcategory2.allSubcategory.name] = 1;\r\n this.exwordDict[Subcategory2.unSubcategory.name] = 1;\r\n }\r\n clearInput(): void {\r\n this.keywordFinderLite.clickClear();\r\n }\r\n toggleShowMenu(): void {\r\n this.showMenu = !this.showMenu;\r\n }\r\n // selectIcon(icon: { id: number, style: CSSStyleDeclaration }): void {\r\n // this.showMenu = false;\r\n // this.typeId = icon.id;\r\n // this.selectedIcon = icon;\r\n // }\r\n selectIcon(id: number): void {\r\n this.showMenu = false;\r\n this.selectedTypeId = id;\r\n console.log(`change type, source:${this.typeId}, new:${this.selectedTypeId}`);\r\n\r\n this.updateTypeIconStyle();\r\n }\r\n updateTypeIconStyle(): void {\r\n // this.selectedIcon = null;\r\n this.typeIconStyle = {} as CSSStyleDeclaration;\r\n if (this.selectedTypeId) {\r\n // this.selectedIcon = this.typeIconDict[this.typeId];\r\n this.typeIconStyle.backgroundImage = this.typeIconDict[this.selectedTypeId].style.backgroundImage;\r\n }\r\n }\r\n clickConfirm(): void {\r\n this.onConfirm();\r\n }\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) checkClickWindowCloseOrNot(ev: MouseEvent): void {\r\n if (this.showMenu\r\n && !this.checkCursorClickClassName(ev, 'icon-menu')) {\r\n this.showMenu = false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
{{title}}
\r\n \r\n
\r\n
\r\n
\r\n
代表圖案
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
實體法
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
程序法
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
排列序號
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
輸入名稱
\r\n
\r\n \r\n
{{keywordFinderLite.inputText.text.length}}/15
\r\n
\r\n
\r\n
\r\n
\r\n {{confirmText}}
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CreateCategoryPopup2Component } from './create-category-popup2.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NumberInputerModule } from '../number-inputer/number-inputer.module';\r\nimport { KeywordFinderLiteModule } from '../keyword-finder-lite/keyword-finder-lite.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [CreateCategoryPopup2Component],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NumberInputerModule,\r\n KeywordFinderLiteModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [CreateCategoryPopup2Component]\r\n})\r\nexport class CreateCategoryPopup2Module { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { CreateCategoryPopupComponent } from './create-category-popup.component';\r\nimport { Category } from '../category/category';\r\nimport { CategoryTypeId } from '../category/category-type-id.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CreateCategoryPopupOpenerService {\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(CreateCategoryPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(\r\n list: Category[],\r\n title: string,\r\n duplicateAlertText: string,\r\n confirmText: string,\r\n // defaultIconName: string,\r\n defaultTypeId: CategoryTypeId,\r\n defaultSn: number,\r\n defaultText: string,\r\n sourceReferenceCount: number,\r\n maxSn: number,\r\n ): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(\r\n list, title, duplicateAlertText, confirmText,\r\n defaultTypeId, defaultSn, defaultText, sourceReferenceCount,\r\n maxSn,\r\n );\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, HostListener, ElementRef, Output, EventEmitter, AfterViewInit } from '@angular/core';\r\nimport { KeywordFinderLiteComponent } from '../keyword-finder-lite/keyword-finder-lite.component';\r\nimport { NumberInputerComponent } from '../number-inputer/number-inputer.component';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { Category } from '../category/category';\r\nimport { CategoryTypeId } from '../category/category-type-id.enum';\r\n\r\n@Component({\r\n selector: 'app-create-category-popup',\r\n templateUrl: './create-category-popup.component.html',\r\n styleUrls: ['./create-category-popup.component.scss']\r\n})\r\nexport class CreateCategoryPopupComponent extends BasePopup implements OnInit, AfterViewInit {\r\n @ViewChild(KeywordFinderLiteComponent, { static: true }) keywordFinderLite: KeywordFinderLiteComponent;\r\n @ViewChild(NumberInputerComponent, { static: true }) numberInputer: NumberInputerComponent;\r\n @ViewChild('icons', { static: true }) iconWindowElementRef: ElementRef;\r\n\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n\r\n categoryTypeId: any = CategoryTypeId;\r\n\r\n clickShowWindow: boolean = false;\r\n categoryList: Category[];\r\n title: string;\r\n duplicateAlertText: string;\r\n confirmText: string;\r\n // defaultSn: number;\r\n defaultText: string;\r\n sourceReferenceCount: number = 0;\r\n maxSn: number = 9999;\r\n\r\n substantiveTypeIdTextList: string[] = [];\r\n proceduralTypeIdTextList: string[] = [];\r\n\r\n tempCategory: Category = new Category();\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n console.log('init create category popup');\r\n\r\n this.tempCategory = new Category();\r\n // this.tempCategory.icon = Category.typeIdIconDict._1;\r\n this.tempCategory.type_id = CategoryTypeId._9;\r\n\r\n this.substantiveTypeIdTextList = Object\r\n .keys(Category.typeIdIconDict)\r\n .slice(1, 11);\r\n\r\n this.proceduralTypeIdTextList = Object\r\n .keys(Category.typeIdIconDict)\r\n .slice(11, 21);\r\n }\r\n ngAfterViewInit(): void {\r\n this.keywordFinderLite.inputElement.nativeElement.focus();\r\n }\r\n\r\n\r\n /** 彈窗開關 */\r\n initPopup(\r\n list: Category[],\r\n title: string,\r\n duplicateAlertText: string,\r\n confirmText: string,\r\n // defaultIconName: string,\r\n defaultTypeId: CategoryTypeId,\r\n defaultSn: number,\r\n defaultText: string,\r\n sourceReferenceCount: number,\r\n maxSn: number,\r\n ): void {\r\n this.categoryList = list;\r\n this.title = title;\r\n this.duplicateAlertText = duplicateAlertText;\r\n this.keywordFinderLite.inputText.text = defaultText || '';\r\n this.defaultText = defaultText;\r\n this.sourceReferenceCount = sourceReferenceCount;\r\n this.numberInputer.updateNumber(defaultSn);\r\n this.confirmText = confirmText;\r\n\r\n if (maxSn > 1) {\r\n this.maxSn = maxSn;\r\n }\r\n\r\n this.tempCategory.type_id = defaultTypeId;\r\n\r\n // // let iconName = CategoryIcon[categoryIcon] || CategoryIcon.i1;\r\n // let categoryIcon = Object.keys(Category.typeIdIconDict).find(v => Category.typeIdIconDict[v] === defaultIconName);\r\n // if (categoryIcon) {\r\n // categoryIcon = Category.typeIdIconDict[categoryIcon];\r\n // } else {\r\n // categoryIcon = Category.oldIconMapToNewIcon[defaultIconName];\r\n // }\r\n\r\n // this.tempCategory.icon = categoryIcon || Category.typeIdIconDict._1;\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n if (!this.clickShowWindow) {\r\n this.popupManagerService.closeLast();\r\n } else {\r\n this.closeWindow();\r\n }\r\n }\r\n }\r\n\r\n\r\n /** 點擊視窗開關 */\r\n decideClickShowWindow(): void {\r\n if (this.clickShowWindow) {\r\n this.closeWindow();\r\n } else {\r\n this.openWindow();\r\n }\r\n }\r\n openWindow(): void {\r\n this.clickShowWindow = true;\r\n }\r\n closeWindow(): void {\r\n this.clickShowWindow = false;\r\n }\r\n\r\n\r\n checkCursorClickTarget(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a === this.iconWindowElementRef.nativeElement);\r\n }\r\n @HostListener('document:click', ['$event']) checkClickWindowCloseOrNot(ev: MouseEvent): void {\r\n if (!this.clickShowWindow) {\r\n return;\r\n }\r\n if (!this.checkCursorClickTarget(ev)) {\r\n this.closeWindow();\r\n }\r\n }\r\n\r\n\r\n /** 選擇icon */\r\n // iconPath(icon: string): string {\r\n // return '/assets/img/category/' + icon;\r\n // }\r\n // selectIcon(icon: string): void {\r\n // this.tempCategory.icon = icon;\r\n // this.closeWindow();\r\n // }\r\n getTypeIcon(type_id_text: string): string {\r\n return Category.getIconUrlByTypeId(type_id_text);\r\n }\r\n selectType(type_id_text: string): void {\r\n this.tempCategory.type_id = CategoryTypeId[type_id_text];\r\n this.closeWindow();\r\n }\r\n\r\n disableConfirmButton(): boolean {\r\n return this.keywordFinderLite.inputText.text.trim().length === 0\r\n || this.numberInputer.currentNumber == null;\r\n }\r\n clickClear(): void {\r\n this.keywordFinderLite.clickClear();\r\n // this.numberInputer.updateNumber(null);\r\n }\r\n checkDuplicate(): boolean {\r\n const result = this.categoryList.some(v => v.text === this.keywordFinderLite.inputText.text.trim());\r\n if (result) {\r\n alert(this.duplicateAlertText);\r\n }\r\n return result;\r\n }\r\n clickSubmit(): void {\r\n if (this.defaultText && this.defaultText.trim() === this.keywordFinderLite.inputText.text.trim()\r\n || !this.checkDuplicate()) {\r\n this.tempCategory.sn = this.numberInputer.currentNumber;\r\n this.tempCategory.text = this.keywordFinderLite.inputText.text;\r\n this.tempCategory.reference_count = this.sourceReferenceCount;\r\n this.submit.emit(this.tempCategory);\r\n // this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
{{title}}
\r\n \r\n
\r\n
\r\n
\r\n
代表圖案
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
實體法
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
程序法
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
排列序號
\r\n \r\n \r\n
\r\n
\r\n
輸入名稱
\r\n \r\n
{{keywordFinderLite.inputText.text.length}}/15
\r\n
\r\n
\r\n
{{confirmText}}
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CreateCategoryPopupComponent } from './create-category-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { NumberInputerModule } from '../number-inputer/number-inputer.module';\r\nimport { KeywordFinderLiteModule } from '../keyword-finder-lite/keyword-finder-lite.module';\r\nimport { InputCharLimitDirective } from 'projects/lwlib/src/input-char-limit.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n NumberInputerModule,\r\n KeywordFinderLiteModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [\r\n CreateCategoryPopupComponent\r\n ],\r\n exports: [\r\n CreateCategoryPopupComponent\r\n ]\r\n})\r\nexport class CreateCategoryPopupModule { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { CreateSubcategoryPopupComponent } from './create-subcategory-popup.component';\r\nimport { Subcategory } from '../category/subcategory';\r\nimport { SubcategoryTypeId } from '../category/subcategory-type-id.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CreateSubcategoryPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(CreateSubcategoryPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(\r\n list: Subcategory[],\r\n title: string,\r\n duplicateAlertText: string,\r\n confirmText: string,\r\n // defaultIconName: string,\r\n defaultTypeId: SubcategoryTypeId,\r\n defaultSn: number,\r\n defaultText: string,\r\n sourceReferenceCount: number,\r\n maxSn: number,\r\n selectedCategoryText: string,\r\n ): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(\r\n list, title, duplicateAlertText, confirmText,\r\n defaultTypeId, defaultSn, defaultText,\r\n sourceReferenceCount, maxSn, selectedCategoryText\r\n );\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, Output, EventEmitter, HostListener, AfterViewInit } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { KeywordFinderLiteComponent } from '../keyword-finder-lite/keyword-finder-lite.component';\r\nimport { NumberInputerComponent } from '../number-inputer/number-inputer.component';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { Subcategory } from '../category/subcategory';\r\nimport { SubcategoryTypeId } from '../category/subcategory-type-id.enum';\r\n\r\n@Component({\r\n selector: 'app-create-subcategory-popup',\r\n templateUrl: './create-subcategory-popup.component.html',\r\n styleUrls: ['./create-subcategory-popup.component.scss']\r\n})\r\nexport class CreateSubcategoryPopupComponent extends BasePopup implements OnInit, AfterViewInit {\r\n @ViewChild(KeywordFinderLiteComponent, { static: true }) keywordFinderLite: KeywordFinderLiteComponent;\r\n @ViewChild(NumberInputerComponent, { static: true }) numberInputer: NumberInputerComponent;\r\n @ViewChild('icons', { static: true }) iconWindowElementRef: ElementRef;\r\n\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n\r\n clickShowWindow: boolean = false;\r\n subcategoryList: Subcategory[];\r\n title: string;\r\n duplicateAlertText: string;\r\n confirmText: string;\r\n defaultText: string;\r\n sourceReferenceCount: number = 0;\r\n maxSn: number = 9999;\r\n selectedCategoryText: string;\r\n\r\n // iconList: { icon: string, path: string }[];\r\n typeIdList: string[] = [];\r\n\r\n tempSubcategory: Subcategory = new Subcategory();\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.tempSubcategory = new Subcategory();\r\n // this.tempSubcategory.icon = Subcategory.typeIdIconDict._1;\r\n this.tempSubcategory.type_id = SubcategoryTypeId._9;\r\n\r\n this.typeIdList = Object\r\n .keys(Subcategory.typeIdIconDict)\r\n .slice(1, 11);\r\n }\r\n ngAfterViewInit(): void {\r\n this.keywordFinderLite.inputElement.nativeElement.focus();\r\n }\r\n\r\n\r\n initPopup(\r\n list: Subcategory[],\r\n title: string,\r\n duplicateAlertText: string,\r\n confirmText: string,\r\n // defaultIconName: string,\r\n defaultTypeId: SubcategoryTypeId,\r\n defaultSn: number,\r\n defaultText: string,\r\n sourceReferenceCount: number,\r\n maxSn: number,\r\n selectedCategoryText: string,\r\n ): void {\r\n this.subcategoryList = list;\r\n this.title = title;\r\n this.duplicateAlertText = duplicateAlertText;\r\n this.keywordFinderLite.inputText.text = defaultText || '';\r\n this.defaultText = defaultText;\r\n this.sourceReferenceCount = sourceReferenceCount;\r\n this.numberInputer.updateNumber(defaultSn);\r\n this.confirmText = confirmText;\r\n this.selectedCategoryText = selectedCategoryText;\r\n\r\n // this.maxSn = maxSn;\r\n\r\n if (maxSn > 1) {\r\n this.maxSn = maxSn;\r\n }\r\n\r\n this.tempSubcategory.type_id = defaultTypeId;\r\n\r\n // let iconName = Object.keys(SubcategoryIcon).find(v => SubcategoryIcon[v] == defaultIconName) || SubcategoryIcon.i1;\r\n // let subcategoryIcon = Object.keys(Subcategory.typeIdIconDict).find(v => Subcategory.typeIdIconDict[v] === defaultIconName);\r\n // if (subcategoryIcon) {\r\n // subcategoryIcon = Subcategory.typeIdIconDict[subcategoryIcon];\r\n // } else {\r\n // subcategoryIcon = Subcategory.oldIconMapToNewIcon[defaultIconName];\r\n // }\r\n // this.tempSubcategory.icon = subcategoryIcon || Subcategory.typeIdIconDict._1;\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n if (!this.clickShowWindow) {\r\n this.popupManagerService.closeLast();\r\n } else {\r\n this.closeWindow();\r\n }\r\n }\r\n }\r\n\r\n\r\n /** 點擊視窗開關 */\r\n decideClickShowWindow(): void {\r\n if (this.clickShowWindow) {\r\n this.closeWindow();\r\n } else {\r\n this.openWindow();\r\n }\r\n }\r\n openWindow(): void {\r\n this.clickShowWindow = true;\r\n }\r\n closeWindow(): void {\r\n this.clickShowWindow = false;\r\n }\r\n\r\n\r\n checkCursorClickTarget(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a === this.iconWindowElementRef.nativeElement);\r\n }\r\n @HostListener('document:click', ['$event']) checkClickWindowCloseOrNot(ev: MouseEvent): void {\r\n if (!this.clickShowWindow) {\r\n return;\r\n }\r\n if (!this.checkCursorClickTarget(ev)) {\r\n this.closeWindow();\r\n }\r\n }\r\n\r\n\r\n /** 選擇icon */\r\n // iconPath(icon: string): string {\r\n // return '/assets/img/subcategory/' + icon;\r\n // }\r\n // selectIcon(icon: string): void {\r\n // this.tempSubcategory.icon = icon;\r\n\r\n // this.closeWindow();\r\n // }\r\n getTypeIcon(type_id_text: string): string {\r\n return Subcategory.getIconUrlByTypeId(type_id_text);\r\n }\r\n selectType(type_id_text: string): void {\r\n this.tempSubcategory.type_id = SubcategoryTypeId[type_id_text];\r\n this.closeWindow();\r\n }\r\n\r\n\r\n disableConfirmButton(): boolean {\r\n return this.keywordFinderLite.inputText.text.trim().length === 0\r\n || this.numberInputer.currentNumber == null;\r\n }\r\n clickClear(): void {\r\n this.keywordFinderLite.clickClear();\r\n // this.numberInputer.updateNumber(null);\r\n }\r\n checkDuplicate(): boolean {\r\n const result = this.subcategoryList.some(v => v.text === this.keywordFinderLite.inputText.text.trim());\r\n if (result) {\r\n alert(this.duplicateAlertText);\r\n }\r\n return result;\r\n }\r\n\r\n clickSubmit(): void {\r\n if (this.defaultText && this.defaultText.trim() === this.keywordFinderLite.inputText.text.trim()\r\n || !this.checkDuplicate()) {\r\n this.tempSubcategory.category_text = this.selectedCategoryText;\r\n this.tempSubcategory.sn = this.numberInputer.currentNumber;\r\n this.tempSubcategory.text = this.keywordFinderLite.inputText.text;\r\n this.tempSubcategory.reference_count = this.sourceReferenceCount;\r\n this.submit.emit(this.tempSubcategory);\r\n // this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
{{title}}
\r\n \r\n
\r\n
\r\n
\r\n
代表圖案
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
排列序號
\r\n \r\n
\r\n
\r\n
輸入名稱
\r\n \r\n
{{keywordFinderLite.inputText.text.length}}/15
\r\n
\r\n
\r\n
{{confirmText}}
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CreateSubcategoryPopupComponent } from './create-subcategory-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { NumberInputerModule } from '../number-inputer/number-inputer.module';\r\nimport { KeywordFinderLiteModule } from '../keyword-finder-lite/keyword-finder-lite.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n NumberInputerModule,\r\n KeywordFinderLiteModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [CreateSubcategoryPopupComponent],\r\n exports: [CreateSubcategoryPopupComponent]\r\n})\r\nexport class CreateSubcategoryPopupModule { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { DangerWarningPopupComponent } from './danger-warning-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DangerWarningPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(DangerWarningPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup();\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\n\r\n@Component({\r\n selector: 'app-danger-warning-popup',\r\n templateUrl: './danger-warning-popup.component.html',\r\n styleUrls: ['./danger-warning-popup.component.scss']\r\n})\r\nexport class DangerWarningPopupComponent extends BasePopup implements OnInit {\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n initPopup(): void { }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n clickConfirm(): void {\r\n location.reload();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
安全提醒
\r\n
\r\n
\r\n
\r\n
帳戶重複登入或帳戶未登出
\r\n
\r\n
重啟登入頁面
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DangerWarningPopupComponent } from './danger-warning-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule\r\n ],\r\n declarations: [DangerWarningPopupComponent],\r\n exports: [DangerWarningPopupComponent]\r\n})\r\nexport class DangerWarningPopupModule { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { DeleteConfirmPopupComponent } from './delete-confirm-popup.component';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { DeleteConfirmPopupType } from './delete-confirm-popup-type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeleteConfirmPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(DeleteConfirmPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(type: DeleteConfirmPopupType): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(type);\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n\r\n\r\n}\r\n","export enum DeleteConfirmPopupType {\r\n Note = 0,\r\n Issue = 1,\r\n IssueAnswer = 2,\r\n Category = 3,\r\n Subcategory = 4,\r\n Summary = 5,\r\n SummaryBlock = 6,\r\n Bookmark = 7,\r\n TeamMessage = 8,\r\n AttachLawRule = 9,\r\n}\r\n","import { Component, OnInit, ElementRef, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { DeleteConfirmPopupType } from './delete-confirm-popup-type';\r\nimport { DeleteConfirmPopupTypeItem } from './delete-confirm-popup-type-item';\r\n\r\n@Component({\r\n selector: 'app-delete-confirm-popup',\r\n templateUrl: './delete-confirm-popup.component.html',\r\n styleUrls: ['./delete-confirm-popup.component.scss'],\r\n})\r\nexport class DeleteConfirmPopupComponent extends BasePopup implements OnInit {\r\n @Output() confirm: EventEmitter = new EventEmitter();\r\n onConfirm: () => void;\r\n onClose: () => void;\r\n\r\n deleteType: { [key in keyof typeof DeleteConfirmPopupType]: DeleteConfirmPopupTypeItem } = {\r\n Note: { title: '刪除筆記', text: '確認刪除,此筆記嗎?', className: 'note', type: DeleteConfirmPopupType.Note },\r\n Issue: { title: '刪除爭點', text: '確認刪除,此爭點嗎?', className: 'issue', type: DeleteConfirmPopupType.Issue },\r\n IssueAnswer: { title: '刪除簡答', text: '確認刪除,此簡答嗎?', className: 'issue-answer', type: DeleteConfirmPopupType.IssueAnswer },\r\n Category: { title: '刪除類別', text: '確認刪除,此類別嗎?', className: 'category', type: DeleteConfirmPopupType.Category },\r\n Subcategory: { title: '刪除項目', text: '確認刪除,此項目嗎?', className: 'subcategory', type: DeleteConfirmPopupType.Subcategory },\r\n Summary: { title: '刪除摘要', text: '確認刪除 「此摘要」 嗎 ?', className: 'summary', type: DeleteConfirmPopupType.Summary },\r\n SummaryBlock: { title: '刪除整串摘要', text: '確認刪除 「串聯的所有摘要」 嗎?', className: 'summary-block', type: DeleteConfirmPopupType.SummaryBlock },\r\n Bookmark: { title: '刪除書籤', text: '確認刪除 「此書籤」 嗎 ?', className: 'bookmark', type: DeleteConfirmPopupType.Bookmark },\r\n TeamMessage: { title: '刪除留言', text: '確認刪除 「此留言」 嗎 ?', className: 'team-message', type: DeleteConfirmPopupType.TeamMessage },\r\n AttachLawRule: { title: '刪除資料', text: '確認刪除 「此資料」 嗎 ?', className: 'attach-law-rule', type: DeleteConfirmPopupType.TeamMessage },\r\n };\r\n\r\n\r\n popupType: DeleteConfirmPopupTypeItem;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n initPopup(type: DeleteConfirmPopupType): void {\r\n this.popupType = this.deleteType[DeleteConfirmPopupType[type]];\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n if (this.onClose != null) {\r\n this.onClose();\r\n }\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n clickConfirm(): void {\r\n if (this.onConfirm != null) {\r\n this.onConfirm();\r\n }\r\n this.confirm.emit(1);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
{{popupType.title}}
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DeleteConfirmPopupComponent } from './delete-confirm-popup.component';\r\n\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { PipeSafeInnerhtmlModule } from 'projects/lwlib/src/pipe-safe-innerhtml/pipe-safe-innerhtml.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n PipeSafeInnerhtmlModule\r\n ],\r\n declarations: [DeleteConfirmPopupComponent],\r\n exports: [DeleteConfirmPopupComponent]\r\n})\r\nexport class DeleteConfirmPopupModule { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { DisconnectedPopupComponent } from './disconnected-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DisconnectedPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(DisconnectedPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup();\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\n\r\n@Component({\r\n selector: 'app-disconnected-popup',\r\n templateUrl: './disconnected-popup.component.html',\r\n styleUrls: ['./disconnected-popup.component.scss']\r\n})\r\nexport class DisconnectedPopupComponent extends BasePopup implements OnInit {\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n initPopup(): void { }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n clickConfirm(): void {\r\n location.reload();\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
中斷連線
\r\n
\r\n
\r\n
\r\n
與伺服器連線中斷,請稍後再重試連線
\r\n
\r\n
重新連線
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DisconnectedPopupComponent } from './disconnected-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule\r\n ],\r\n declarations: [DisconnectedPopupComponent],\r\n exports: [DisconnectedPopupComponent]\r\n})\r\nexport class DisconnectedPopupModule { }\r\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AppService, LoginStatus, LoginType } from 'projects/desktop/src/app/app.service';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n\r\n@Component({\r\n selector: 'app-double-login-popup',\r\n templateUrl: './double-login-popup.component.html',\r\n styleUrls: ['./double-login-popup.component.scss']\r\n})\r\nexport class DoubleLoginPopupComponent implements OnInit {\r\n showPopup: boolean = false;\r\n loginType: LoginType;\r\n @Output() loginAndKick: EventEmitter = new EventEmitter();\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n instantLogin(): void {\r\n // this.showPopup = false;\r\n this.loginAndKick.emit(null);\r\n }\r\n openPopup(): void {\r\n // this.showPopup = true;\r\n }\r\n closePopup(): void {\r\n // this.showPopup = false;\r\n this.dialogRef.close();\r\n }\r\n checkKeydown(ev: KeyboardEvent): void {\r\n if (ev.keyCode === 27) {\r\n this.closePopup();\r\n }\r\n }\r\n}\r\n","","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DoubleLoginPopupComponent } from './double-login-popup.component';\r\n// import { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n // MaskFullScreenModule\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [\r\n DoubleLoginPopupComponent\r\n ],\r\n exports: [\r\n DoubleLoginPopupComponent,\r\n // MaskFullScreenModule,\r\n ]\r\n})\r\nexport class DoubleLoginPopupModule { }\r\n","import { Component, OnInit, ViewChild, OnDestroy, HostListener } from '@angular/core';\r\nimport { PageChange2Component } from '../../page-change2/page-change2.component';\r\nimport { Category2 } from '../../category/category2';\r\nimport { EditCategoryPopup2Service } from '../edit-category-popup2.service';\r\nimport { KeywordFinderComponent } from '../../keyword-finder/keyword-finder.component';\r\nimport { Subscription, of } from 'rxjs';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { Subcategory2 } from '../../category/subcategory2';\r\nimport { LoadingIconService } from '../../loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { concatMap, tap, delay } from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { CreateCategoryPopup2Component } from '../../create-category-popup2/create-category-popup2.component';\r\nimport { CategoryTypeId } from '../../category/category-type-id.enum';\r\n\r\n@Component({\r\n selector: 'app-category',\r\n templateUrl: './category.component.html',\r\n styleUrls: ['./category.component.scss']\r\n})\r\nexport class CategoryComponent implements OnInit, OnDestroy {\r\n @ViewChild(PageChange2Component, { static: true }) pagechange: PageChange2Component;\r\n @ViewChild(KeywordFinderComponent, { static: true }) keywordFinder: KeywordFinderComponent;\r\n\r\n list: Category2[] = [];\r\n snList: string[] = [];\r\n\r\n get selectedCategory(): Category2 {\r\n return this.editCategoryPopup2Service.selectedCategory;\r\n }\r\n showMenuItem: Category2;\r\n get disableConfirmButton(): boolean {\r\n if (this.editCategoryPopup2Service.noteCategory.name !== this.editCategoryPopup2Service.selectedCategory.name) {\r\n return false;\r\n }\r\n if (this.editCategoryPopup2Service.noteSubcategory.name !== this.editCategoryPopup2Service.selectedSubcategory.name) {\r\n return false;\r\n }\r\n if (this.editCategoryPopup2Service.noteCategory.name === Category2.unCategory.name\r\n && this.editCategoryPopup2Service.noteSubcategory.name === Subcategory2.unSubcategory.name\r\n && this.editCategoryPopup2Service.selectedCategory.name === Category2.unCategory.name\r\n && this.editCategoryPopup2Service.selectedSubcategory.name === Subcategory2.unSubcategory.name\r\n ) {\r\n return true;\r\n }\r\n if (this.editCategoryPopup2Service.noteCategory.name === this.editCategoryPopup2Service.selectedCategory.name\r\n && this.editCategoryPopup2Service.noteSubcategory.name === Subcategory2.unSubcategory.name\r\n && this.editCategoryPopup2Service.selectedSubcategory.name === Subcategory2.unSubcategory.name) {\r\n return true;\r\n }\r\n\r\n return this.editCategoryPopup2Service.noteCategory.name === this.editCategoryPopup2Service.selectedCategory.name\r\n && this.editCategoryPopup2Service.noteSubcategory.category === this.editCategoryPopup2Service.selectedCategory.name\r\n && this.editCategoryPopup2Service.noteSubcategory.name === this.editCategoryPopup2Service.selectedSubcategory.name;\r\n }\r\n\r\n // filter: any = {\r\n // text: ''\r\n // };\r\n // get searchedKeyword(): string {\r\n // return this.filter.text;\r\n // }\r\n // set searchedKeyword(value: string) {\r\n // this.filter.text = value;\r\n // }\r\n searchedKeyword: string = '';\r\n\r\n get isInSort(): boolean {\r\n return this.editCategoryPopup2Service.isWaitSortConfirm;\r\n }\r\n sourceOrderDict: { [key: string]: number } = {};\r\n\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private editCategoryPopup2Service: EditCategoryPopup2Service,\r\n private loadingIconService: LoadingIconService,\r\n private matDialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.pagechange.tipDirection = 'top';\r\n this.pagechange.config.perPageAmount = 18;\r\n this.pagechange.config.enableRefresh = false;\r\n // this.selectedCategory = this.editCategoryPopup2Service.selectedCategory;\r\n // console.log(this.selectedCategory);\r\n\r\n // console.log(this.list);\r\n // console.log(this.editCategoryPopup2Service);\r\n\r\n this.pagechange.config.onPageChange = (pageIndex: number) => {\r\n this.refreshList();\r\n };\r\n this.pagechange.config.countHandler = (count: number) => {\r\n if (this.keywordFinder.searchedText) {\r\n return count.toString();\r\n } else {\r\n return (count - 1).toString();\r\n }\r\n };\r\n\r\n this.subscriptions.keywordFinderSubmitSubscription = this.keywordFinder.submit.subscribe((keyword) => {\r\n this.pagechange.pageIndex = 1;\r\n this.searchedKeyword = keyword;\r\n this.refreshList();\r\n });\r\n this.subscriptions.keywordFinderClearSubscription = this.keywordFinder.clear.subscribe(() => {\r\n this.pagechange.pageIndex = 1;\r\n this.searchedKeyword = '';\r\n this.refreshList();\r\n });\r\n\r\n // for (let i = 0; i < 13; i++) {\r\n // const newCategory: Category2 = new Category2();\r\n // newCategory.count = 0;\r\n // newCategory.type_id = Math.ceil(Math.random() * 20);\r\n // newCategory.updateIconStyle();\r\n // newCategory.name = `TEST_${i}`;\r\n // newCategory.subcategories = [];\r\n // newCategory.index = i + 3;\r\n // this.editCategoryPopup2Service.categoryList.push(newCategory);\r\n // }\r\n\r\n this.refreshList(this.editCategoryPopup2Service.noteCategory);\r\n }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n refreshList(jumpToItem?: Category2): void {\r\n const resultList: Category2[] = [];\r\n const searchKeyword = (this.keywordFinder.searchedText || '').toLowerCase();\r\n // const rawSearchKeyword = this.keywordFinder.searchedText || '';\r\n // console.log(rawSearchKeyword);\r\n // const searchKeyword = rawSearchKeyword.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n\r\n if (!searchKeyword) {\r\n // resultList.push(Category2.allCategory);\r\n resultList.push(Category2.unCategory);\r\n resultList.push(...this.editCategoryPopup2Service.categoryList);\r\n } else {\r\n resultList.push(...this.editCategoryPopup2Service.categoryList\r\n .filter(v => v.name.toLowerCase().indexOf(searchKeyword) > -1)\r\n );\r\n }\r\n\r\n console.log(`jump to item,`, jumpToItem);\r\n\r\n if (jumpToItem != null) {\r\n const listIndex = resultList.findIndex(v => v === jumpToItem);\r\n if (listIndex > -1) {\r\n let targetPageIndex = Math.ceil((listIndex + 1) / 18);\r\n console.log(`target index:${targetPageIndex}, result len:${resultList.length}`);\r\n\r\n if (targetPageIndex === 0) {\r\n targetPageIndex = 1;\r\n }\r\n console.log(`jump target page index:${targetPageIndex}`);\r\n\r\n this.pagechange.pageIndex = targetPageIndex;\r\n }\r\n }\r\n\r\n\r\n this.list = [];\r\n this.snList = [];\r\n let startSn = (this.pagechange.pageIndex - 1) * 18 + 1;\r\n if (!searchKeyword && this.pagechange.pageIndex > 1) {\r\n startSn -= 1;\r\n }\r\n for (let i = 0; i < 18; i++) {\r\n const itemIndex = i + ((this.pagechange.pageIndex - 1) * 18);\r\n const element = resultList[itemIndex];\r\n\r\n if (element === Category2.unCategory) {\r\n this.snList.push('');\r\n } else {\r\n this.snList.push(startSn.toString());\r\n startSn++;\r\n }\r\n\r\n this.list.push(element);\r\n }\r\n\r\n this.pagechange.count = resultList.length;\r\n }\r\n toggleMenuShow(item: Category2): void {\r\n if (this.showMenuItem === item) {\r\n this.showMenuItem = null;\r\n return;\r\n }\r\n\r\n this.showMenuItem = item;\r\n }\r\n selectItem(item: Category2): void {\r\n if (this.editCategoryPopup2Service.selectedCategory.name !== item.name) {\r\n this.editCategoryPopup2Service.selectedSubcategory = Subcategory2.unSubcategory;\r\n }\r\n\r\n this.editCategoryPopup2Service.selectedCategory = item;\r\n // this.selectedCategory = item;\r\n }\r\n isItemSelected(item: Category2): boolean {\r\n if (this.editCategoryPopup2Service.selectedCategory === item) {\r\n return true;\r\n }\r\n return this.editCategoryPopup2Service.selectedCategory.name === item.name;\r\n }\r\n\r\n\r\n\r\n onAddItem(): void {\r\n if (!this.sortConfirmCheck()) { return; }\r\n\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n CreateCategoryPopup2Component,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '420px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const comp = dlRef.componentInstance;\r\n comp.setCategoryIconList();\r\n comp.title = '新增類別';\r\n comp.typeId = CategoryTypeId._1;\r\n comp.selectedTypeId = CategoryTypeId._1;\r\n comp.selectIcon(comp.typeId);\r\n comp.sn = this.editCategoryPopup2Service.categoryList.length + 1;\r\n comp.snMin = 1;\r\n comp.snMax = this.editCategoryPopup2Service.categoryList.length + 1;\r\n comp.numberInputer.min = comp.snMin;\r\n comp.numberInputer.max = comp.snMax;\r\n comp.numberInputer.currentNumber = comp.sn;\r\n comp.numberInputer.updateNumberText();\r\n comp.text = '';\r\n comp.keywordFinderLite.inputText.text = comp.text;\r\n comp.confirmText = '確定新增';\r\n comp.textInputChecker = (text: string) => {\r\n return !this.editCategoryPopup2Service.categoryList.some(v => v.name === text);\r\n };\r\n comp.onConfirm = () => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n this.editCategoryPopup2Service.needRefresh = true;\r\n\r\n const newCategory: Category2 = new Category2();\r\n newCategory.count = 0;\r\n newCategory.type_id = comp.selectedTypeId;\r\n newCategory.updateIconStyle();\r\n newCategory.name = comp.keywordFinderLite.inputText.text;\r\n newCategory.subcategories = [];\r\n newCategory.index = comp.numberInputer.currentNumber - 1;\r\n\r\n const handleObserver = this.editCategoryPopup2Service.addCategoryObserver({\r\n sn: newCategory.index,\r\n type_id: newCategory.type_id,\r\n text: newCategory.name\r\n });\r\n // const handleObserver = of(1).pipe(delay(0));\r\n\r\n handleObserver\r\n .pipe(\r\n tap(() => {\r\n // 新增分類到清單\r\n this.editCategoryPopup2Service.categoryList.splice(newCategory.index, 0, newCategory);\r\n // 重新設定序號\r\n this.editCategoryPopup2Service.categoryList.forEach((v, i) => { v.index = i; });\r\n // 重新排序, 設定序號\r\n Category2.sortOutCategoryList(this.editCategoryPopup2Service.categoryList);\r\n // 設定選擇的分類=新分類\r\n this.editCategoryPopup2Service.selectedCategory = newCategory;\r\n // 刷新清單\r\n this.refreshList(newCategory);\r\n }),\r\n concatMap(() => {\r\n // 更新排序到資料庫\r\n const order_list = this.getItemListOrderList(this.editCategoryPopup2Service.categoryList);\r\n const sortObserver = this.editCategoryPopup2Service.sortCategoryObserver(order_list);\r\n return sortObserver;\r\n }),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n }\r\n });\r\n\r\n comp.closePopup();\r\n };\r\n }\r\n onEditItem(item: Category2): void {\r\n if (!this.sortConfirmCheck()) { return; }\r\n\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n CreateCategoryPopup2Component,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '420px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const comp = dlRef.componentInstance;\r\n comp.setCategoryIconList();\r\n comp.title = '編輯類別';\r\n comp.typeId = item.type_id;\r\n comp.selectedTypeId = item.type_id;\r\n comp.selectIcon(comp.typeId);\r\n comp.sn = (item.index + 1);\r\n comp.snMin = 1;\r\n comp.snMax = this.editCategoryPopup2Service.categoryList.length;\r\n comp.numberInputer.min = comp.snMin;\r\n comp.numberInputer.max = comp.snMax;\r\n comp.numberInputer.currentNumber = comp.sn;\r\n comp.numberInputer.updateNumberText();\r\n comp.text = item.name;\r\n comp.keywordFinderLite.inputText.text = comp.text;\r\n comp.confirmText = '確定修改';\r\n comp.textInputChecker = (text: string) => {\r\n if (text === item.name) { return true; }\r\n return !this.editCategoryPopup2Service.categoryList.some(v => v.name === text);\r\n };\r\n comp.onConfirm = () => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n this.editCategoryPopup2Service.needRefresh = true;\r\n\r\n const sourceCategoryName: string = comp.text;\r\n const newTypeId = comp.selectedTypeId;\r\n const newName = comp.keywordFinderLite.inputText.text;\r\n const newIndex = comp.numberInputer.currentNumber - 1;\r\n\r\n // 先更新編輯的分項到資料庫, 後面在設定排序\r\n const handleObserver = this.editCategoryPopup2Service.editCategoryObserver(sourceCategoryName, {\r\n sn: newIndex,\r\n type_id: newTypeId,\r\n text: newName\r\n });\r\n // const handleObserver = of(1).pipe(delay(1000));\r\n\r\n handleObserver.pipe(\r\n tap(() => {\r\n // 本地清單處理\r\n const category = this.editCategoryPopup2Service.categoryList.find(c => c.name === sourceCategoryName);\r\n const tempList = this.editCategoryPopup2Service.categoryList.filter(v => v !== category);\r\n tempList.splice(newIndex, 0, category);\r\n this.editCategoryPopup2Service.categoryList = tempList;\r\n // 設定新資料\r\n category.index = newIndex;\r\n category.type_id = newTypeId;\r\n category.name = newName;\r\n // 設定分項新資料\r\n for (const subcategory of category.subcategories) {\r\n subcategory.category = newName;\r\n }\r\n // 重新設定序號\r\n tempList.forEach((v, i) => { v.index = i; });\r\n // 重新排序, 設定序號\r\n Category2.sortOutCategoryList(this.editCategoryPopup2Service.categoryList);\r\n // 刷新清單\r\n this.refreshList(category);\r\n }),\r\n concatMap(() => {\r\n // 更新排序到資料庫\r\n const order_list = this.getItemListOrderList(this.editCategoryPopup2Service.categoryList);\r\n const sortObserver = this.editCategoryPopup2Service.sortCategoryObserver(order_list);\r\n return sortObserver;\r\n }),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n }\r\n });\r\n\r\n comp.closePopup();\r\n // this.editCategoryPopup2Service.editCategoryObserver(item.name,)\r\n };\r\n }\r\n onDeleteItem(item: Category2): void {\r\n if (!this.sortConfirmCheck()) { return; }\r\n\r\n if (confirm('確定刪除類別?')) {\r\n // 開啟讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n this.editCategoryPopup2Service.needRefresh = true;\r\n\r\n // 刪除類別\r\n const handleObserver = this.editCategoryPopup2Service.deleteCategoryObserver(item.name);\r\n // const handleObserver = of(1).pipe(delay(1000));\r\n\r\n handleObserver.pipe(\r\n tap(() => {\r\n // 更新分類清單\r\n this.editCategoryPopup2Service.categoryList = this.editCategoryPopup2Service.categoryList.filter(v => v.name !== item.name);\r\n // 更新分項清單\r\n this.editCategoryPopup2Service.subcategoryList = [];\r\n for (const c of this.editCategoryPopup2Service.categoryList) {\r\n this.editCategoryPopup2Service.subcategoryList.push(...c.subcategories);\r\n }\r\n // 重新設定序號\r\n this.editCategoryPopup2Service.categoryList.forEach((v, i) => { v.index = i; });\r\n // 重新排序, 設定序號\r\n Category2.sortOutCategoryList(this.editCategoryPopup2Service.categoryList);\r\n // 設定選擇的分類分項=未分類\r\n this.editCategoryPopup2Service.selectedCategory = Category2.unCategory;\r\n this.editCategoryPopup2Service.selectedSubcategory = Subcategory2.unSubcategory;\r\n // 回第一頁\r\n this.pagechange.pageIndex = 1;\r\n // 刷新清單\r\n this.refreshList();\r\n }),\r\n concatMap(() => {\r\n // 更新排序\r\n const order_list = this.getItemListOrderList(this.editCategoryPopup2Service.categoryList);\r\n const sortObserver = this.editCategoryPopup2Service.sortCategoryObserver(order_list);\r\n return sortObserver;\r\n }),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n }\r\n });\r\n }\r\n }\r\n\r\n onAutoSort(): void {\r\n if (this.editCategoryPopup2Service.isWaitSortConfirm) {\r\n return;\r\n }\r\n this.editCategoryPopup2Service.isWaitSortConfirm = true;\r\n\r\n this.sourceOrderDict = {};\r\n this.editCategoryPopup2Service.categoryList.forEach(v => {\r\n this.sourceOrderDict[v.name] = v.index;\r\n });\r\n\r\n this.editCategoryPopup2Service.categoryList.sort((a, b) => {\r\n const typeIdCompare = a.type_id - b.type_id;\r\n if (typeIdCompare !== 0) {\r\n return typeIdCompare;\r\n }\r\n\r\n return a.name.localeCompare(b.name);\r\n });\r\n this.editCategoryPopup2Service.categoryList.forEach((v, i) => {\r\n v.index = i;\r\n });\r\n\r\n this.refreshList();\r\n }\r\n onSaveSortResult(): void {\r\n // 開啟讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n this.editCategoryPopup2Service.needRefresh = true;\r\n\r\n // 重新排序, 設定序號\r\n Category2.sortOutCategoryList(this.editCategoryPopup2Service.categoryList);\r\n // 刷新清單\r\n this.refreshList();\r\n // 更新排序\r\n const order_list = this.getItemListOrderList(this.editCategoryPopup2Service.categoryList);\r\n const handleObserver = this.editCategoryPopup2Service.sortCategoryObserver(order_list);\r\n // const handleObserver = of(1).pipe(delay(1000));\r\n\r\n handleObserver.subscribe({\r\n complete: () => {\r\n this.editCategoryPopup2Service.isWaitSortConfirm = false;\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n }\r\n });\r\n }\r\n onRestoreSort(): void {\r\n this.editCategoryPopup2Service.categoryList.forEach((v, i) => {\r\n v.index = this.sourceOrderDict[v.name];\r\n });\r\n this.editCategoryPopup2Service.categoryList.sort((a, b) => a.index - b.index);\r\n this.refreshList();\r\n this.editCategoryPopup2Service.isWaitSortConfirm = false;\r\n }\r\n getItemListOrderList(itemList: Category2[]): { category_text: string, sn: number }[] {\r\n const order_list: { category_text: string, sn: number }[] = itemList\r\n .map(v => {\r\n return { category_text: v.name, sn: v.index };\r\n });\r\n return order_list;\r\n }\r\n sortConfirmCheck(): boolean {\r\n if (this.editCategoryPopup2Service.isWaitSortConfirm) {\r\n alert('請先確定排序結果再進行操作!');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n onConfirm(): void {\r\n if (!this.sortConfirmCheck()) { return; }\r\n if (this.disableConfirmButton) { return; }\r\n\r\n let category_text = '';\r\n let subcategory_text = '';\r\n if (this.editCategoryPopup2Service.selectedCategory.name !== Category2.unCategory.name) {\r\n category_text = this.editCategoryPopup2Service.selectedCategory.name;\r\n }\r\n if (this.editCategoryPopup2Service.selectedSubcategory.name !== Subcategory2.unSubcategory.name) {\r\n subcategory_text = this.editCategoryPopup2Service.selectedSubcategory.name;\r\n }\r\n\r\n this.editCategoryPopup2Service.onConfirm(category_text, subcategory_text);\r\n }\r\n\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n checkCursorClickTarget(ev: any, element: Element): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n }\r\n getElementFromClickPath(ev: any, className: string): HTMLElement {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).find((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) clickCheck($ev: MouseEvent): void {\r\n if (this.showMenuItem\r\n && !this.checkCursorClickClassName($ev, 'edit-menu')) {\r\n this.showMenuItem = null;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
新增類別
\r\n
\r\n
\r\n
\r\n
自動排序
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
序號
\r\n
\r\n
類別內容
\r\n
\r\n
序號
\r\n
\r\n
類別內容
\r\n
\r\n
序號
\r\n
\r\n
類別內容
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
確定置換\r\n
\r\n
\r\n
儲存排序\r\n
\r\n
還原排序\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
{{snList[index]}}
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{'['+(item?item.count:0)+']'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
編輯類別
\r\n
\r\n
\r\n
\r\n
刪除類別
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { EditCategoryPopup2Service } from './edit-category-popup2.service';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Category2 } from '../category/category2';\r\nimport { Subcategory2 } from '../category/subcategory2';\r\nimport { DataUpdateResult } from 'projects/lwlib/src/data-update-result';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\n\r\n@Component({\r\n selector: 'app-edit-category-popup2',\r\n templateUrl: './edit-category-popup2.component.html',\r\n styleUrls: ['./edit-category-popup2.component.scss'],\r\n providers: [EditCategoryPopup2Service]\r\n})\r\nexport class EditCategoryPopup2Component implements OnInit {\r\n\r\n get selectedTabIndex(): number {\r\n return this.editCategoryPopup2Service.selectedTabIndex;\r\n }\r\n set selectedTabIndex(i: number) {\r\n this.editCategoryPopup2Service.selectedTabIndex = i;\r\n }\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef,\r\n public editCategoryPopup2Service: EditCategoryPopup2Service,\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n closePopup(): void {\r\n this.matDialogRef.close();\r\n }\r\n selectTabIndex(index: number): void {\r\n if (!this.sortConfirmCheck()) { return; }\r\n\r\n this.editCategoryPopup2Service.selectedTabIndex = index;\r\n }\r\n sortConfirmCheck(): boolean {\r\n if (this.editCategoryPopup2Service.isWaitSortConfirm) {\r\n alert('請先確定排序結果再進行操作!');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n setNoteCategory(\r\n category: Category2,\r\n subcategory: Subcategory2\r\n ): void {\r\n this.editCategoryPopup2Service.noteCategory = category;\r\n this.editCategoryPopup2Service.noteSubcategory = subcategory;\r\n this.editCategoryPopup2Service.selectedCategory = category;\r\n this.editCategoryPopup2Service.selectedSubcategory = subcategory;\r\n }\r\n setListsAndNoteCategory(\r\n categoryList: Category2[],\r\n category: Category2,\r\n subcategory: Subcategory2\r\n ): void {\r\n\r\n // 設定原始清單\r\n this.editCategoryPopup2Service.sourceCategoryList = categoryList;\r\n this.editCategoryPopup2Service.sourceSubcategoryList = [];\r\n for (const c of this.editCategoryPopup2Service.sourceCategoryList) {\r\n this.editCategoryPopup2Service.sourceSubcategoryList.push(...c.subcategories);\r\n }\r\n\r\n // 複製\r\n const json = JSON.stringify(categoryList);\r\n\r\n this.editCategoryPopup2Service.categoryList = (JSON.parse(json) as Category2[])\r\n .map(v => {\r\n const c = Serializable.extend(new Category2, v);\r\n c.updateIconStyle();\r\n\r\n c.subcategories = c.subcategories.map(v2 => {\r\n const s: Subcategory2 = Serializable.extend(new Subcategory2, v2);\r\n s.updateIconStyle();\r\n return s;\r\n });\r\n\r\n return c;\r\n });\r\n\r\n this.editCategoryPopup2Service.subcategoryList = [];\r\n for (const c of this.editCategoryPopup2Service.categoryList) {\r\n this.editCategoryPopup2Service.subcategoryList.push(...c.subcategories);\r\n }\r\n\r\n\r\n // 設定筆記、選擇的分類分項\r\n this.editCategoryPopup2Service.noteCategory = Category2.unCategory;\r\n this.editCategoryPopup2Service.selectedCategory = Category2.unCategory;\r\n this.editCategoryPopup2Service.noteSubcategory = Subcategory2.unSubcategory;\r\n this.editCategoryPopup2Service.selectedSubcategory = Subcategory2.unSubcategory;\r\n if (category !== Category2.unCategory) {\r\n const noteCategory = this.editCategoryPopup2Service.categoryList.find(v => v.name === category.name);\r\n if (noteCategory) {\r\n this.editCategoryPopup2Service.noteCategory = noteCategory;\r\n this.editCategoryPopup2Service.selectedCategory = noteCategory;\r\n }\r\n }\r\n if (subcategory !== Subcategory2.unSubcategory) {\r\n const noteSubcategory = this.editCategoryPopup2Service.subcategoryList\r\n .find(v => v.category === subcategory.category && v.name === subcategory.name);\r\n if (noteSubcategory) {\r\n this.editCategoryPopup2Service.noteSubcategory = noteSubcategory;\r\n this.editCategoryPopup2Service.selectedSubcategory = noteSubcategory;\r\n }\r\n }\r\n }\r\n setEvents(\r\n onConfirm: (category_text: string, subcategory_text: string) => void,\r\n updateCategoryListObserver: () => Observable,\r\n addCategoryObserver: (newCategory: { sn: number, type_id: number, text: string }) => Observable,\r\n addSubcategorrObserver: (newSubcategory: { category_text: string, sn: number, type_id: number, text: string }) => Observable,\r\n editCategoryObserver: (source_category_text: string, newCategory: { sn: number, type_id: number, text: string }) => Observable,\r\n editSubcategory: (category_text: string, source_subcategory_text: string, newSubcategory: { category_text: string, sn: number, type_id: number, text: string }) => Observable,\r\n deleteCategoryObserver: (category_text: string) => Observable,\r\n deleteSubcategoryObserver: (category_text: string, subcategory_text: string) => Observable,\r\n sortCategoryObserver: (order_list: { category_text: string, sn: number }[]) => Observable,\r\n sortSubcategoryObserver: (order_list: { category_text: string, subcategory_text: string, sn: number }[]) => Observable,\r\n ): void {\r\n this.editCategoryPopup2Service.onConfirm = onConfirm;\r\n this.editCategoryPopup2Service.updateCategoryListObserver = updateCategoryListObserver;\r\n this.editCategoryPopup2Service.addCategoryObserver = addCategoryObserver;\r\n this.editCategoryPopup2Service.addSubcategoryObserver = addSubcategorrObserver;\r\n this.editCategoryPopup2Service.editCategoryObserver = editCategoryObserver;\r\n this.editCategoryPopup2Service.editSubcategory = editSubcategory;\r\n this.editCategoryPopup2Service.deleteCategoryObserver = deleteCategoryObserver;\r\n this.editCategoryPopup2Service.deleteSubcategoryObserver = deleteSubcategoryObserver;\r\n this.editCategoryPopup2Service.sortCategoryObserver = sortCategoryObserver;\r\n this.editCategoryPopup2Service.sortSubcategoryObserver = sortSubcategoryObserver;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
檔案管理
\r\n \r\n
\r\n
\r\n
\r\n
類別
\r\n
項目
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EditCategoryPopup2Component } from './edit-category-popup2.component';\r\nimport { CategoryComponent } from './category/category.component';\r\nimport { SubcategoryComponent } from './subcategory/subcategory.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { EditCategoryPopup2Service } from './edit-category-popup2.service';\r\nimport { PageChange2Module } from '../page-change2/page-change2.module';\r\nimport { KeywordFinderModule } from '../keyword-finder/keyword-finder.module';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n EditCategoryPopup2Component,\r\n CategoryComponent,\r\n SubcategoryComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n PageChange2Module,\r\n KeywordFinderModule,\r\n PipeHighlightModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [EditCategoryPopup2Component],\r\n providers: [EditCategoryPopup2Service]\r\n})\r\nexport class EditCategoryPopup2Module { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Subcategory2 } from '../category/subcategory2';\r\nimport { Category2 } from '../category/category2';\r\nimport { Observable } from 'rxjs';\r\nimport { DataUpdateResult } from 'projects/lwlib/src/data-update-result';\r\n\r\n@Injectable()\r\nexport class EditCategoryPopup2Service {\r\n\r\n noteCategory: Category2;\r\n noteSubcategory: Subcategory2;\r\n\r\n selectedTabIndex: number = -1;\r\n selectedCategory: Category2;\r\n selectedSubcategory: Subcategory2;\r\n\r\n // 原始清單 做還原用\r\n sourceCategoryList: Category2[] = [];\r\n sourceSubcategoryList: Subcategory2[] = [];\r\n\r\n // 編輯用清單\r\n categoryList: Category2[] = [];\r\n subcategoryList: Subcategory2[] = [];\r\n\r\n isWaitSortConfirm: boolean = false;\r\n\r\n onConfirm: (category_text: string, subcategory_text: string) => void;\r\n updateCategoryListObserver: () => Observable;\r\n addCategoryObserver: (newCategory: { sn: number, type_id: number, text: string }) => Observable;\r\n addSubcategoryObserver: (newSubcategory: { category_text: string, sn: number, type_id: number, text: string }) => Observable;\r\n editCategoryObserver: (source_category_text: string, newCategory: { sn: number, type_id: number, text: string }) => Observable;\r\n editSubcategory: (category_text: string, source_subcategory_text: string, newSubcategory: { category_text: string, sn: number, type_id: number, text: string }) => Observable;\r\n deleteCategoryObserver: (category_text: string) => Observable;\r\n deleteSubcategoryObserver: (category_text: string, subcategory_text: string) => Observable;\r\n sortCategoryObserver: (order_list: { category_text: string, sn: number }[]) => Observable;\r\n sortSubcategoryObserver: (order_list: { category_text: string, subcategory_text: string, sn: number }[]) => Observable;\r\n\r\n // hasDeleteCategoryOrSubcategory: boolean = false;\r\n needRefresh: boolean = false;\r\n\r\n constructor() { }\r\n\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, OnDestroy, HostListener } from '@angular/core';\r\nimport { PageChange2Component } from '../../page-change2/page-change2.component';\r\nimport { KeywordFinderComponent } from '../../keyword-finder/keyword-finder.component';\r\nimport { EditCategoryPopup2Service } from '../edit-category-popup2.service';\r\nimport { LoadingIconService } from '../../loading-icon/loading-icon.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { Category2 } from '../../category/category2';\r\nimport { Subcategory2 } from '../../category/subcategory2';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { tap, concatMap } from 'rxjs/operators';\r\nimport { MaterialHelper } from 'projects/lwlib/src/material-helper';\r\nimport { CreateCategoryPopup2Component } from '../../create-category-popup2/create-category-popup2.component';\r\nimport { SubcategoryTypeId } from '../../category/subcategory-type-id.enum';\r\n\r\n@Component({\r\n selector: 'app-subcategory',\r\n templateUrl: './subcategory.component.html',\r\n styleUrls: ['./subcategory.component.scss']\r\n})\r\nexport class SubcategoryComponent implements OnInit, OnDestroy {\r\n @ViewChild(PageChange2Component, { static: true }) pagechange: PageChange2Component;\r\n @ViewChild(KeywordFinderComponent, { static: true }) keywordFinder: KeywordFinderComponent;\r\n\r\n\r\n list: Subcategory2[] = [];\r\n snList: string[] = [];\r\n\r\n get selectedSubcategory(): Subcategory2 {\r\n return this.editCategoryPopup2Service.selectedSubcategory;\r\n }\r\n showMenuItem: Subcategory2;\r\n\r\n get disableConfirmButton(): boolean {\r\n if (this.editCategoryPopup2Service.noteCategory.name !== this.editCategoryPopup2Service.selectedCategory.name) {\r\n return false;\r\n }\r\n if (this.editCategoryPopup2Service.noteSubcategory.name !== this.editCategoryPopup2Service.selectedSubcategory.name) {\r\n return false;\r\n }\r\n if (this.editCategoryPopup2Service.noteCategory.name === Category2.unCategory.name\r\n && this.editCategoryPopup2Service.noteSubcategory.name === Subcategory2.unSubcategory.name\r\n && this.editCategoryPopup2Service.selectedCategory.name === Category2.unCategory.name\r\n && this.editCategoryPopup2Service.selectedSubcategory.name === Subcategory2.unSubcategory.name\r\n ) {\r\n return true;\r\n }\r\n if (this.editCategoryPopup2Service.noteCategory.name === this.editCategoryPopup2Service.selectedCategory.name\r\n && this.editCategoryPopup2Service.noteSubcategory.name === Subcategory2.unSubcategory.name\r\n && this.editCategoryPopup2Service.selectedSubcategory.name === Subcategory2.unSubcategory.name) {\r\n return true;\r\n }\r\n\r\n return this.editCategoryPopup2Service.noteCategory.name === this.editCategoryPopup2Service.selectedCategory.name\r\n && this.editCategoryPopup2Service.noteSubcategory.category === this.editCategoryPopup2Service.selectedCategory.name\r\n && this.editCategoryPopup2Service.noteSubcategory.name === this.editCategoryPopup2Service.selectedSubcategory.name;\r\n }\r\n\r\n get disableAddButton(): boolean {\r\n return this.editCategoryPopup2Service.selectedCategory === Category2.unCategory;\r\n }\r\n searchedKeyword: string = '';\r\n\r\n get isInSort(): boolean {\r\n return this.editCategoryPopup2Service.isWaitSortConfirm;\r\n }\r\n sourceOrderDict: { [key: string]: number } = {};\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private editCategoryPopup2Service: EditCategoryPopup2Service,\r\n private loadingIconService: LoadingIconService,\r\n private matDialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.pagechange.tipDirection = 'top';\r\n this.pagechange.config.perPageAmount = 18;\r\n this.pagechange.config.enableRefresh = false;\r\n\r\n this.pagechange.config.onPageChange = (pageIndex: number) => {\r\n this.refreshList();\r\n };\r\n this.pagechange.config.countHandler = (count: number) => {\r\n if (this.keywordFinder.searchedText) {\r\n return count.toString();\r\n } else {\r\n return (count - 1).toString();\r\n }\r\n };\r\n\r\n this.subscriptions.keywordFinderSubmitSubscription = this.keywordFinder.submit.subscribe((keyword) => {\r\n this.pagechange.pageIndex = 1;\r\n this.searchedKeyword = keyword;\r\n this.refreshList();\r\n });\r\n this.subscriptions.keywordFinderClearSubscription = this.keywordFinder.clear.subscribe(() => {\r\n this.pagechange.pageIndex = 1;\r\n this.searchedKeyword = '';\r\n this.refreshList();\r\n });\r\n\r\n this.refreshList(this.editCategoryPopup2Service.noteSubcategory);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n refreshList(jumpToItem?: Subcategory2): void {\r\n const resultList: Subcategory2[] = [];\r\n\r\n let list1: Subcategory2[] = this.editCategoryPopup2Service.subcategoryList;\r\n const selectedCategoryName = this.editCategoryPopup2Service.selectedCategory.name;\r\n if (selectedCategoryName !== Category2.unCategory.name) {\r\n list1 = this.editCategoryPopup2Service.subcategoryList\r\n .filter(v => v.category === selectedCategoryName);\r\n }\r\n\r\n\r\n const searchKeyword = (this.keywordFinder.searchedText || '').toLowerCase();\r\n\r\n if (!searchKeyword) {\r\n resultList.push(Subcategory2.unSubcategory);\r\n resultList.push(...list1);\r\n } else {\r\n resultList.push(...list1\r\n .filter(v => v.name.toLowerCase().indexOf(searchKeyword) > -1)\r\n );\r\n }\r\n\r\n console.log(`jump to item,`, jumpToItem);\r\n\r\n if (jumpToItem != null) {\r\n const listIndex = resultList.findIndex(v => v.category === jumpToItem.category && v.name === jumpToItem.name);\r\n if (listIndex > -1) {\r\n let targetPageIndex = Math.ceil((listIndex + 1) / 18);\r\n console.log(`target index:${targetPageIndex}, result len:${resultList.length}`);\r\n\r\n if (targetPageIndex === 0) {\r\n targetPageIndex = 1;\r\n }\r\n console.log(`jump target page index:${targetPageIndex}`);\r\n\r\n this.pagechange.pageIndex = targetPageIndex;\r\n }\r\n }\r\n\r\n\r\n this.list = [];\r\n this.snList = [];\r\n let startSn = (this.pagechange.pageIndex - 1) * 18 + 1;\r\n if (!searchKeyword && this.pagechange.pageIndex > 1) {\r\n startSn -= 1;\r\n }\r\n for (let i = 0; i < 18; i++) {\r\n const itemIndex = i + ((this.pagechange.pageIndex - 1) * 18);\r\n const element = resultList[itemIndex];\r\n\r\n if (element === Subcategory2.unSubcategory) {\r\n this.snList.push('');\r\n } else {\r\n this.snList.push(startSn.toString());\r\n startSn++;\r\n }\r\n\r\n this.list.push(element);\r\n }\r\n\r\n this.pagechange.count = resultList.length;\r\n }\r\n\r\n toggleMenuShow(item: Subcategory2): void {\r\n if (this.showMenuItem === item) {\r\n this.showMenuItem = null;\r\n return;\r\n }\r\n\r\n this.showMenuItem = item;\r\n }\r\n selectItem(item: Subcategory2): void {\r\n if (this.editCategoryPopup2Service.selectedCategory.name !== item.name) {\r\n this.editCategoryPopup2Service.selectedSubcategory = Subcategory2.unSubcategory;\r\n }\r\n\r\n this.editCategoryPopup2Service.selectedSubcategory = item;\r\n\r\n if (item !== Subcategory2.unSubcategory\r\n && this.editCategoryPopup2Service.selectedCategory.name !== item.category) {\r\n this.editCategoryPopup2Service.selectedCategory = this.editCategoryPopup2Service.categoryList.find(v => v.name === item.category);\r\n this.refreshList(item);\r\n }\r\n // this.selectedCategory = item;\r\n }\r\n isItemSelected(item: Subcategory2): boolean {\r\n if (this.editCategoryPopup2Service.selectedSubcategory === item) {\r\n return true;\r\n }\r\n return this.editCategoryPopup2Service.selectedSubcategory.category === item.category\r\n && this.editCategoryPopup2Service.selectedSubcategory.name === item.name;\r\n }\r\n updateSubcategoryListFromCategory(): void {\r\n this.editCategoryPopup2Service.subcategoryList = [];\r\n for (const c of this.editCategoryPopup2Service.categoryList) {\r\n this.editCategoryPopup2Service.subcategoryList.push(...c.subcategories);\r\n }\r\n }\r\n resetSubcategoryListIndex(): void {\r\n let indexOfAll = 0;\r\n this.editCategoryPopup2Service.categoryList.forEach(c => {\r\n c.subcategories.forEach((s, i) => {\r\n s.index = i;\r\n s.indexOfAll = indexOfAll;\r\n indexOfAll++;\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n onAddItem(): void {\r\n if (!this.sortConfirmCheck()) { return; }\r\n if (this.disableAddButton) { return; }\r\n\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n CreateCategoryPopup2Component,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '420px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const comp = dlRef.componentInstance;\r\n comp.isSubcategory = true;\r\n comp.setSubcategoryIconList();\r\n comp.title = '新增項目';\r\n comp.typeId = SubcategoryTypeId._1;\r\n comp.selectedTypeId = SubcategoryTypeId._1;\r\n comp.selectIcon(comp.typeId);\r\n comp.sn = this.editCategoryPopup2Service.selectedCategory.subcategories.length + 1;\r\n comp.snMin = 1;\r\n comp.snMax = this.editCategoryPopup2Service.selectedCategory.subcategories.length + 1;\r\n comp.numberInputer.min = comp.snMin;\r\n comp.numberInputer.max = comp.snMax;\r\n comp.numberInputer.currentNumber = comp.sn;\r\n comp.numberInputer.updateNumberText();\r\n comp.text = '';\r\n comp.keywordFinderLite.inputText.text = comp.text;\r\n comp.confirmText = '確定新增';\r\n comp.textInputChecker = (text: string) => {\r\n return !this.editCategoryPopup2Service.selectedCategory.subcategories.some(v => v.name === text);\r\n };\r\n comp.onConfirm = () => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n this.editCategoryPopup2Service.needRefresh = true;\r\n\r\n const selectedCategory: Category2 = this.editCategoryPopup2Service.selectedCategory;\r\n\r\n const newSubcategory: Subcategory2 = new Subcategory2();\r\n newSubcategory.category = selectedCategory.name;\r\n newSubcategory.category_sn = selectedCategory.index;\r\n newSubcategory.count = 0;\r\n newSubcategory.type_id = comp.selectedTypeId;\r\n newSubcategory.updateIconStyle();\r\n newSubcategory.name = comp.keywordFinderLite.inputText.text;\r\n newSubcategory.index = comp.numberInputer.currentNumber - 1;\r\n\r\n const handleObserver = this.editCategoryPopup2Service.addSubcategoryObserver({\r\n sn: newSubcategory.index,\r\n category_text: newSubcategory.category,\r\n type_id: newSubcategory.type_id,\r\n text: newSubcategory.name,\r\n });\r\n // const handleObserver = of(1).pipe(delay(0));\r\n\r\n handleObserver\r\n .pipe(\r\n tap(() => {\r\n // 本地清單處理, 新增項目到清單\r\n selectedCategory.subcategories.splice(newSubcategory.index, 0, newSubcategory);\r\n // 更新分項清單\r\n this.updateSubcategoryListFromCategory();\r\n // 重新設定序號\r\n this.resetSubcategoryListIndex();\r\n // 重新排序, 設定序號\r\n Category2.sortOutCategoryList(this.editCategoryPopup2Service.categoryList);\r\n // 設定選擇的分項=新分項\r\n this.editCategoryPopup2Service.selectedSubcategory = newSubcategory;\r\n // 刷新清單\r\n this.refreshList(newSubcategory);\r\n }),\r\n concatMap(() => {\r\n // 更新排序到資料庫\r\n const order_list = this.getItemListOrderList(this.editCategoryPopup2Service.subcategoryList);\r\n const sortObserver = this.editCategoryPopup2Service.sortSubcategoryObserver(order_list);\r\n return sortObserver;\r\n })\r\n // concatMap(() => sortObserver),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n }\r\n });\r\n\r\n comp.closePopup();\r\n };\r\n }\r\n onEditItem(item: Subcategory2): void {\r\n if (!this.sortConfirmCheck()) { return; }\r\n if (this.disableAddButton) { return; }\r\n\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n CreateCategoryPopup2Component,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '420px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const comp = dlRef.componentInstance;\r\n comp.isSubcategory = true;\r\n comp.setSubcategoryIconList();\r\n comp.title = '編輯項目';\r\n comp.typeId = item.type_id;\r\n comp.selectedTypeId = item.type_id;\r\n comp.selectIcon(comp.typeId);\r\n comp.sn = (item.index + 1);\r\n comp.snMin = 1;\r\n comp.snMax = this.editCategoryPopup2Service.selectedCategory.subcategories.length;\r\n comp.numberInputer.min = comp.snMin;\r\n comp.numberInputer.max = comp.snMax;\r\n comp.numberInputer.currentNumber = comp.sn;\r\n comp.numberInputer.updateNumberText();\r\n comp.text = item.name;\r\n comp.keywordFinderLite.inputText.text = comp.text;\r\n comp.confirmText = '確定修改';\r\n comp.textInputChecker = (text: string) => {\r\n if (text === item.name) { return true; }\r\n return !this.editCategoryPopup2Service.selectedCategory.subcategories.some(v => v.name === text);\r\n };\r\n comp.onConfirm = () => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n this.editCategoryPopup2Service.needRefresh = true;\r\n\r\n const selectedCategory: Category2 = this.editCategoryPopup2Service.selectedCategory;\r\n const sourceSubcategoryName: string = comp.text;\r\n const newTypeId = comp.selectedTypeId;\r\n const newName = comp.keywordFinderLite.inputText.text;\r\n const newIndex = comp.numberInputer.currentNumber - 1;\r\n\r\n // 先更新編輯的分項到資料庫, 後面在設定排序\r\n const handleObserver = this.editCategoryPopup2Service.editSubcategory(\r\n selectedCategory.name,\r\n sourceSubcategoryName,\r\n {\r\n category_text: selectedCategory.name,\r\n sn: newIndex,\r\n type_id: newTypeId,\r\n text: newName\r\n }\r\n );\r\n // const handleObserver = of(1).pipe(delay(0));\r\n\r\n handleObserver\r\n .pipe(\r\n tap(() => {\r\n // 本地清單處理\r\n const subcategory = this.editCategoryPopup2Service.subcategoryList.find(v => v.category === selectedCategory.name\r\n && v.name === sourceSubcategoryName);\r\n const tempList = selectedCategory.subcategories.filter(v => v !== subcategory);\r\n tempList.splice(newIndex, 0, subcategory);\r\n selectedCategory.subcategories = tempList;\r\n // 設定新資料\r\n subcategory.index = newIndex;\r\n subcategory.type_id = newTypeId;\r\n subcategory.name = newName;\r\n // 重新設定序號\r\n this.resetSubcategoryListIndex();\r\n // 重新排序\r\n this.updateSubcategoryListFromCategory();\r\n // 重新排序, 設定序號\r\n Category2.sortOutCategoryList(this.editCategoryPopup2Service.categoryList);\r\n // 刷新清單\r\n this.refreshList(subcategory);\r\n }),\r\n concatMap(() => {\r\n // 更新排序到資料庫\r\n const order_list = this.getItemListOrderList(this.editCategoryPopup2Service.subcategoryList);\r\n const sortObserver = this.editCategoryPopup2Service.sortSubcategoryObserver(order_list);\r\n return sortObserver;\r\n })\r\n // concatMap(() => sortObserver),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n }\r\n });\r\n\r\n comp.closePopup();\r\n };\r\n }\r\n onDeleteItem(item: Subcategory2): void {\r\n if (!this.sortConfirmCheck()) { return; }\r\n\r\n if (confirm('確定刪除項目?')) {\r\n // 開啟讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n this.editCategoryPopup2Service.needRefresh = true;\r\n\r\n // 刪除類別\r\n const handleObserver = this.editCategoryPopup2Service.deleteSubcategoryObserver(item.category, item.name);\r\n // const handleObserver = of(1).pipe(delay(1000));\r\n\r\n handleObserver.pipe(\r\n tap(() => {\r\n // 本地清單處理, 更新分項清單\r\n const category = this.editCategoryPopup2Service.categoryList.find(v => v.name === item.category);\r\n category.subcategories = category.subcategories.filter(v => v.name !== item.name);\r\n this.updateSubcategoryListFromCategory();\r\n // 重新設定序號\r\n this.resetSubcategoryListIndex();\r\n // 重新排序, 設定序號\r\n Category2.sortOutCategoryList(this.editCategoryPopup2Service.categoryList);\r\n // 設定選擇的分項=未分類\r\n this.editCategoryPopup2Service.selectedSubcategory = Subcategory2.unSubcategory;\r\n // 回第一頁\r\n this.pagechange.pageIndex = 1;\r\n // 刷新清單\r\n this.refreshList();\r\n }),\r\n concatMap(() => {\r\n // 更新排序\r\n const order_list = this.getItemListOrderList(this.editCategoryPopup2Service.subcategoryList);\r\n const sortObserver = this.editCategoryPopup2Service.sortSubcategoryObserver(order_list);\r\n return sortObserver;\r\n }),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n onAutoSort(): void {\r\n if (this.editCategoryPopup2Service.isWaitSortConfirm) {\r\n return;\r\n }\r\n this.editCategoryPopup2Service.isWaitSortConfirm = true;\r\n\r\n this.sourceOrderDict = {};\r\n this.editCategoryPopup2Service.subcategoryList.forEach(s => {\r\n this.sourceOrderDict[`${s.category}-${s.name}`] = s.indexOfAll;\r\n });\r\n\r\n if (this.editCategoryPopup2Service.selectedCategory.name === Category2.unCategory.name) {\r\n // 類別-項目排序\r\n this.editCategoryPopup2Service.categoryList.forEach(c => {\r\n c.subcategories.sort((a, b) => {\r\n const ati = a.type_id;\r\n const bti = b.type_id;\r\n const tr = ati - bti;\r\n if (tr !== 0) { return tr; }\r\n\r\n return a.name.localeCompare(b.name);\r\n });\r\n });\r\n } else {\r\n // 排序特定類別下的項目\r\n this.editCategoryPopup2Service.selectedCategory.subcategories.sort((a, b) => {\r\n const ati = a.type_id;\r\n const bti = b.type_id;\r\n const tr = ati - bti;\r\n if (tr !== 0) { return tr; }\r\n\r\n return a.name.localeCompare(b.name);\r\n });\r\n }\r\n\r\n // 重新設定序號\r\n let indexOfAll = 0;\r\n this.editCategoryPopup2Service.categoryList.forEach(c => {\r\n c.subcategories.forEach((s, i) => {\r\n s.index = i;\r\n s.indexOfAll = indexOfAll;\r\n indexOfAll++;\r\n });\r\n });\r\n\r\n // 重排項目清單\r\n this.editCategoryPopup2Service.subcategoryList.sort((a, b) => a.indexOfAll - b.indexOfAll);\r\n\r\n this.refreshList();\r\n }\r\n onSaveSortResult(): void {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n this.editCategoryPopup2Service.needRefresh = true;\r\n\r\n // 重新排序, 設定序號\r\n Category2.sortOutCategoryList(this.editCategoryPopup2Service.categoryList);\r\n // 刷新清單\r\n this.refreshList();\r\n // 更新排序\r\n const order_list = this.getItemListOrderList(this.editCategoryPopup2Service.subcategoryList);\r\n const handleObserver = this.editCategoryPopup2Service.sortSubcategoryObserver(order_list);\r\n // const handleObserver = of(1).pipe(delay(1000));\r\n\r\n handleObserver.subscribe({\r\n complete: () => {\r\n this.editCategoryPopup2Service.isWaitSortConfirm = false;\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n }\r\n });\r\n }\r\n onRestoreSort(): void {\r\n this.editCategoryPopup2Service.subcategoryList.forEach((s, i) => {\r\n s.indexOfAll = this.sourceOrderDict[`${s.category}-${s.name}`];\r\n });\r\n this.editCategoryPopup2Service.subcategoryList.sort((a, b) => a.indexOfAll - b.indexOfAll);\r\n this.editCategoryPopup2Service.categoryList.forEach(c => {\r\n c.subcategories.forEach((s, i) => {\r\n s.index = i;\r\n });\r\n });\r\n this.refreshList();\r\n this.editCategoryPopup2Service.isWaitSortConfirm = false;\r\n }\r\n getItemListOrderList(itemList: Subcategory2[]): {\r\n category_text: string,\r\n subcategory_text: string,\r\n sn: number\r\n }[] {\r\n const order_list: { category_text: string, subcategory_text: string, sn: number }[] = itemList\r\n .map(v => {\r\n return {\r\n category_text: v.category,\r\n subcategory_text: v.name,\r\n sn: v.index\r\n };\r\n });\r\n return order_list;\r\n }\r\n sortConfirmCheck(): boolean {\r\n if (this.editCategoryPopup2Service.isWaitSortConfirm) {\r\n alert('請先確定排序結果再進行操作!');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n onConfirm(): void {\r\n if (!this.sortConfirmCheck()) { return; }\r\n if (this.disableConfirmButton) { return; }\r\n\r\n let category_text = '';\r\n let subcategory_text = '';\r\n if (this.editCategoryPopup2Service.selectedCategory.name !== Category2.unCategory.name) {\r\n category_text = this.editCategoryPopup2Service.selectedCategory.name;\r\n }\r\n if (this.editCategoryPopup2Service.selectedSubcategory.name !== Subcategory2.unSubcategory.name) {\r\n subcategory_text = this.editCategoryPopup2Service.selectedSubcategory.name;\r\n }\r\n\r\n this.editCategoryPopup2Service.onConfirm(category_text, subcategory_text);\r\n }\r\n\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n checkCursorClickTarget(ev: any, element: Element): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n }\r\n getElementFromClickPath(ev: any, className: string): HTMLElement {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).find((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) clickCheck($ev: MouseEvent): void {\r\n if (this.showMenuItem\r\n && !this.checkCursorClickClassName($ev, 'edit-menu')) {\r\n this.showMenuItem = null;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
新增項目
\r\n
\r\n
\r\n
\r\n
自動排序
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
序號
\r\n
\r\n
類別內容
\r\n
\r\n
序號
\r\n
\r\n
類別內容
\r\n
\r\n
序號
\r\n
\r\n
類別內容
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
確定置換\r\n
\r\n
\r\n
儲存排序\r\n
\r\n
還原排序\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
{{snList[index]}}
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{'['+(item?item.count:0)+']'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
編輯項目
\r\n
\r\n
\r\n
\r\n
刪除項目
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit, ViewChild, Input, OnDestroy, Output, EventEmitter, HostListener, ComponentRef } from '@angular/core';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { EditCategoryPopupService } from '../edit-category-popup.service';\r\nimport { PageChangeComponent } from '../../page-change/page-change.component';\r\nimport { KeywordFinderComponent } from '../../keyword-finder/keyword-finder.component';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { CreateCategoryPopupOpenerService } from '../../create-category-popup/create-category-popup-opener.service';\r\nimport { DeleteConfirmPopupOpenerService } from '../../delete-confirm-popup/delete-confirm-popup-opener.service';\r\nimport { DeleteConfirmPopupType } from '../../delete-confirm-popup/delete-confirm-popup-type';\r\nimport { PopupManagerService } from '../../popup-manager/popup-manager.service';\r\nimport { CreateCategoryPopupComponent } from '../../create-category-popup/create-category-popup.component';\r\nimport { EditCategoryData } from '../edit-category-data';\r\nimport { forkJoin, empty } from 'rxjs';\r\nimport { CategoryOrderRequestData } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/category-order-request-data';\r\nimport { LoadingIconService } from '../../loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Category } from '../../category/category';\r\nimport { Subcategory } from '../../category/subcategory';\r\nimport { SignalR } from 'ng2-signalr';\r\n\r\n@Component({\r\n selector: 'app-category',\r\n templateUrl: './category.component.html',\r\n styleUrls: ['./category.component.scss']\r\n})\r\nexport class CategoryComponent implements OnInit, OnDestroy {\r\n constructor(\r\n // private filterPopupService: FilterPopupService,\r\n public appCommonService: AppCommonService,\r\n private popupManagerService: PopupManagerService,\r\n private editCategoryPopupService: EditCategoryPopupService,\r\n private createCategoryPopupOpenerService: CreateCategoryPopupOpenerService,\r\n private deleteConfirmPopupOpenerService: DeleteConfirmPopupOpenerService,\r\n private loadingIconService: LoadingIconService,\r\n private service: AppService,\r\n ) { }\r\n\r\n @ViewChild(PageChangeComponent, { static: true }) pageChange: PageChangeComponent;\r\n @ViewChild(KeywordFinderComponent, { static: true }) keywordFinder: KeywordFinderComponent;\r\n\r\n get selectedCategory(): Category { return this.editCategoryPopupService.selectedCategory; }\r\n get list(): Category[] { return this.editCategoryPopupService.categoryList; }\r\n\r\n perPageItemAmount: number = 18;\r\n startIndex: number = 0;\r\n startSn: number = 1;\r\n get leftList(): Category[] {\r\n return [0, 1, 2, 3, 4, 5]\r\n .map((n, i) => {\r\n return this.hasAutoSort ?\r\n this.virtualList[this.startIndex + n] :\r\n this.list[this.startIndex + n];\r\n });\r\n }\r\n get middleList(): Category[] {\r\n return [6, 7, 8, 9, 10, 11]\r\n .map((n, i) => {\r\n return this.hasAutoSort ?\r\n this.virtualList[this.startIndex + n] :\r\n this.list[this.startIndex + n];\r\n });\r\n }\r\n get rightList(): Category[] {\r\n return [12, 13, 14, 15, 16, 17]\r\n .map((n, i) => {\r\n return this.hasAutoSort ?\r\n this.virtualList[this.startIndex + n] :\r\n this.list[this.startIndex + n];\r\n });\r\n }\r\n\r\n filter: Category = Category.NewCategory(null, null, null);\r\n\r\n openedMenuElement: Element;\r\n\r\n\r\n hasAutoSort: boolean = false;\r\n virtualList: Category[] = [];\r\n\r\n\r\n\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n @Output() confirm: EventEmitter = new EventEmitter();\r\n @Output() delete: EventEmitter = new EventEmitter();\r\n @Output() edit: EventEmitter = new EventEmitter();\r\n\r\n // // listAreaType: EditCategoryTab = EditCategoryTab.Category;\r\n // listAreaName: string = '類別';\r\n\r\n // // list: Category[] = [];\r\n // get sourceList(): Category[] { return this.editCategoryPopupService.categoryList.list; }\r\n // // get list(): Category[] { return this.itemList(); }\r\n // filter: Category = Category.NewCategory(null, null, null);\r\n // get filterKeyword(): string { return this.filter.text && this.filter.text.trim() ? this.filter.text.trim() : ''; }\r\n\r\n // get snOffset(): number { return this.filter.text.trim() ? 1 : 0; }\r\n // perPageItemAmount: number = 18;\r\n // get leftStart(): number { return this.pageChange.perPageAmount * (this.pageChange.currentIndex - 1); }\r\n // get leftStop(): number { return this.leftStart + 6; }\r\n // get middleStart(): number { return this.leftStop; }\r\n // get middleStop(): number { return this.middleStart + 6; }\r\n // get rightStart(): number { return this.middleStop; }\r\n // get rightStop(): number { return this.rightStart + 6; }\r\n\r\n // // get selectedCategory(): Category { return this.editCategoryPopupService.selectedCategory; }\r\n // set selectedCategory(value: Category) { this.editCategoryPopupService.selectedCategory = value; }\r\n\r\n\r\n // sourceOrderList: CategoryOrderRequestData[];\r\n // // orderedList: CategoryOrderRequestData[];\r\n\r\n // subscriptions: SubscriptionGroup = {};\r\n\r\n\r\n\r\n /** 初始化 */\r\n ngOnInit() {\r\n // 換頁器換頁\r\n this.subscriptions.pageChange = this.pageChange.pageChange.subscribe(pageIndex => {\r\n this.pageChange.currentIndex = pageIndex;\r\n // console.log(pageIndex, this.pageChange.currentIndex);\r\n this.updateStartIndex();\r\n });\r\n // 換頁器,刷新\r\n this.subscriptions.pageRefresh = this.pageChange.refresh.subscribe(() => {\r\n this.editCategoryPopupService.pullAllList();\r\n });\r\n\r\n // 關鍵字搜尋\r\n this.subscriptions.keywordSearch = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n if (keyword !== '' && this.orderCheckAlert()) {\r\n this.keywordFinder.searchedText = '';\r\n return;\r\n }\r\n\r\n this.editCategoryPopupService.categorySearchKeyword = keyword;\r\n this.filter.text = keyword;\r\n this.editCategoryPopupService.updateAllList();\r\n this.pageChange.update(\r\n this.editCategoryPopupService.option.category_list.length,\r\n this.editCategoryPopupService.categoryList.length,\r\n this.perPageItemAmount\r\n );\r\n this.pageChange.currentIndex = 1;\r\n this.updateStartIndex();\r\n });\r\n\r\n\r\n\r\n\r\n // 更新清單頁\r\n this.editCategoryPopupService.updateAllList();\r\n // 設定初始頁\r\n this.pageChange.currentIndex = this.findCategoryPage(this.editCategoryPopupService.selectedCategory);\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.editCategoryPopupService.option.category_list.length,\r\n this.editCategoryPopupService.categoryList.length,\r\n this.perPageItemAmount\r\n );\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n\r\n\r\n\r\n\r\n // // console.log(this.editCategoryPopupService.service);\r\n // // console.log(this.editCategoryPopupService.service.noteList);\r\n // // console.log(this.editCategoryPopupService.note);\r\n // // console.log(this.editCategoryPopupService.noteCategory);\r\n // // console.log(this.selectedCategory);\r\n // // this.sourceList = this.editCategoryPopupService.categoryList.list;\r\n // // this.sourceList = [];\r\n\r\n // this.filter.text = '';\r\n // // this.list = this.itemList();\r\n // // console.log(this.list);\r\n\r\n // this.pageChange.update(this.getPageDisplayCount(), this.list.length, this.perPageItemAmount);\r\n\r\n // this.subscriptions.keywordFinder = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n // this.pageChange.currentIndex = 1;\r\n // this.filter.text = keyword;\r\n // // this.list = this.itemList();\r\n // this.pageChange.update(this.getPageDisplayCount(), this.list.length, this.perPageItemAmount);\r\n // });\r\n // this.subscriptions.categoryList = this.editCategoryPopupService.service.categoryList$.subscribe(v => {\r\n // if (this.sourceOrderList) {\r\n // this.revertOrder();\r\n // }\r\n // this.pageChange.update(this.getPageDisplayCount(), this.list.length, this.perPageItemAmount);\r\n // });\r\n\r\n // // this.sourceList = JSON.parse(JSON.stringify(this.editCategoryPopupService.categoryList.list));\r\n // // this.sourceList = JSON.parse(JSON.stringify(this.editCategoryPopupService.service.categoryList.list));\r\n\r\n // // this.selectedCategory = this.editCategoryPopupService.noteCategory;\r\n // // this.selectedCategory = this.editCategoryPopupService.selectedCategory;\r\n // // if (!this.selectedCategory) {\r\n // // this.selectedCategory = Category.unCategory;\r\n // // }\r\n\r\n // // this.initSubscribeFilterList();\r\n // // this.initSubscribePage();\r\n\r\n // this.goToItemPageIndex(this.selectedCategory);\r\n\r\n // // console.log(this.selectedCategory);\r\n }\r\n ngOnDestroy(): void {\r\n this.editCategoryPopupService.categorySearchKeyword = '';\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n\r\n // if (this.sourceOrderList) {\r\n // this.revertOrder();\r\n // }\r\n }\r\n\r\n\r\n updateStartIndex(): void {\r\n this.startIndex = (this.pageChange.currentIndex - 1) * this.perPageItemAmount;\r\n\r\n // 有關建字搜尋,從1開始\r\n if (this.editCategoryPopupService.categorySearchKeyword) {\r\n this.startSn = (this.pageChange.currentIndex - 1) * this.perPageItemAmount + 1;\r\n } else {\r\n // 沒關鍵字搜尋,從0開始 (體系歸納沒有全部類)\r\n this.startSn = (this.pageChange.currentIndex - 1) * this.perPageItemAmount - 0;\r\n }\r\n }\r\n\r\n findCategoryPage(category: Category): number {\r\n const index = this.list.findIndex(v => v === category);\r\n if (index === -1) {\r\n return 1;\r\n }\r\n const pageIndex = Math.floor(index / this.perPageItemAmount) + 1;\r\n return pageIndex;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // /** 取清單 */\r\n // itemList(): Category[] {\r\n // const list = [];\r\n // let fillStartIndex: number = 1;\r\n // const keyword = this.filterKeyword.toLocaleLowerCase();\r\n // if (keyword) {\r\n // const _list = this.sourceList.filter(v => v.text.toLocaleLowerCase().trim().indexOf(keyword) > -1);\r\n // list.push(..._list);\r\n // fillStartIndex = list.length + 1;\r\n // } else {\r\n // list.push(Category.unCategory);\r\n // list.push(...this.sourceList);\r\n // fillStartIndex = list.length;\r\n // }\r\n\r\n\r\n\r\n // const maxPageItemCount = Math.ceil(list.length / this.perPageItemAmount) * this.perPageItemAmount;\r\n // const fillCount = maxPageItemCount - list.length;\r\n // const emptyItems = this.getEmptyItem(fillCount, fillStartIndex);\r\n // list.push(...emptyItems);\r\n\r\n // return list;\r\n // }\r\n // /** 取換頁器用的顯示數量 */\r\n // getPageDisplayCount(): number {\r\n // const keyword = this.filterKeyword.toLocaleLowerCase();\r\n // if (keyword) {\r\n // const _list = this.sourceList.filter(v => v.text.toLocaleLowerCase().trim().indexOf(keyword) > -1);\r\n // return _list.length;\r\n // } else {\r\n // return this.sourceList.length;\r\n // }\r\n // }\r\n\r\n // /** 轉換序號 */\r\n // itemSn(item: Category, sn: number): string {\r\n // if (item.sn < 1) {\r\n // return '';\r\n // }\r\n // // return item.sn.toString();\r\n // return sn.toString();\r\n // }\r\n // /** 本地刷新清單 */\r\n // refreshListLocal(): void {\r\n // // this.list = this.itemList();\r\n // this.pageChange.update(this.getPageDisplayCount(), this.list.length, this.perPageItemAmount);\r\n // }\r\n // refreshList(): void {\r\n // this.editCategoryPopupService.service.pullCategoryList();\r\n // this.editCategoryPopupService.service.pullSubcategoryList();\r\n // }\r\n // /** 取填充用的項目 */\r\n // getEmptyItem(count: number, startIndex: number): Category[] {\r\n // return new Array(count).fill(0).map((v, i) => Category.NewCategory(startIndex + i, null, null));\r\n // }\r\n // /** 前往項目頁面 */\r\n // goToItemPageIndex(item: Category): void {\r\n // if (item && item.sn >= 1) {\r\n // const itemIndex = this.list.findIndex(v => v.text === item.text);\r\n // if (itemIndex > -1) {\r\n // const pageIndex = Math.floor((itemIndex / this.perPageItemAmount) + 1);\r\n // this.pageChange.clickGoToPage(pageIndex);\r\n // return;\r\n // }\r\n // }\r\n // this.pageChange.clickGoToPage(1);\r\n // // if (item && item.sn > -1) {\r\n // // const index = this.list.findIndex(a => a.text === item.text) + 1;\r\n // // let pageIndex = Math.ceil(index / this.pageChange.perPageAmount);\r\n // // pageIndex = this.pageChange.lastIndex < pageIndex ? this.pageChange.lastIndex : pageIndex;\r\n // // pageIndex = pageIndex === 0 ? 1 : pageIndex;\r\n // // this.pageChange.clickGoToPage(pageIndex);\r\n // // } else {\r\n // // // this.selectedItem = this.unItem;\r\n // // this.pageChange.clickGoToPage(1);\r\n // // }\r\n // }\r\n /** 取項目icon style */\r\n getCategoryIconStyle(category: Category): any {\r\n return Category.getIconStyle(category);\r\n }\r\n /** 選擇項目 */\r\n selectItem(item: Category): void {\r\n // if (!item.text) { return; }\r\n // this.editCategoryPopupService.selectCategory(item);\r\n this.editCategoryPopupService.selectCategory(item);\r\n this.pageChange.currentIndex = this.findCategoryPage(this.editCategoryPopupService.selectedCategory);\r\n this.editCategoryPopupService.updateAllList();\r\n this.updateStartIndex();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // initSubscribeFilterList(): void {\r\n // // this.subscriptions.categoryList = this.editCategoryPopupService.categoryList$.subscribe(l => {\r\n // // console.log(l);\r\n\r\n // // if (this.sourceOrderList) {\r\n // // this.revertOrder();\r\n // // }\r\n\r\n // // this.sourceList = JSON.parse(JSON.stringify(this.editCategoryPopupService.categoryList.list));\r\n\r\n // // this.filterList();\r\n // // this.goToItemPageIfOutOfPage(this.selectedCategory);\r\n // // // this.goToItemPageIndex(this.selectedCategory);\r\n // // });\r\n\r\n // // this.subscriptions.keywordFinder = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n // // this.filter.text = keyword;\r\n // // this.filterList();\r\n // // this.pageChange.clickGoToPage(1);\r\n // // });\r\n // }\r\n // initSubscribePage(): void {\r\n // this.subscriptions.selectedCategory = this.editCategoryPopupService.selectedCategory$.subscribe(r => {\r\n // if (!Category.compare(this.selectedCategory, r)) {\r\n // this.selectedCategory = r;\r\n // this.editCategoryPopupService.selectSubcategory(Subcategory.unSubcategory);\r\n // }\r\n // if (!this.selectedCategory) {\r\n // this.selectedCategory = Category.unCategory;\r\n // }\r\n\r\n\r\n // });\r\n // this.subscriptions.pageChange = this.pageChange.clickGoToIndex$.subscribe(n => {\r\n // this.updatePageRange(n);\r\n // });\r\n // }\r\n /** 頁面項目 */\r\n // updatePageRange(pageIndex: number): void {\r\n // this.leftStart = this.pageChange.perPageAmount * (pageIndex - 1);\r\n // this.leftStop = this.leftStart + 6;\r\n // this.middleStart = this.leftStop;\r\n // this.middleStop = this.middleStart + 6;\r\n // this.rightStart = this.middleStop;\r\n // this.rightStop = this.rightStart + 6;\r\n // }\r\n // pullItemList(): void {\r\n // this.editCategoryPopupService.pullCategoryList();\r\n // }\r\n // goToItemPageIfOutOfPage(item: Category): void {\r\n // if (item && item.sn > -1) {\r\n // const index = this.list.findIndex(a => a.text === item.text) + 1;\r\n // if (index === 0) {\r\n // this.pageChange.clickGoToPage(1);\r\n // } else {\r\n // let pageIndex = Math.ceil(index / this.pageChange.perPageAmount);\r\n // if (this.pageChange.lastIndex < pageIndex) {\r\n // pageIndex = this.pageChange.lastIndex;\r\n // pageIndex = pageIndex === 0 ? 1 : pageIndex;\r\n // this.pageChange.clickGoToPage(pageIndex);\r\n // }\r\n // }\r\n // }\r\n // }\r\n /** 過濾清單 */\r\n // setListSn(list: Category[]): Category[] {\r\n // for (let i = 0; i < list.length; i++) {\r\n // if (!list[i].text) {\r\n // continue;\r\n // }\r\n // list[i].virtual_index = (i + 1);\r\n // }\r\n // return list;\r\n // }\r\n // fillEmptyItem(startIndex: number) {\r\n // const addEmptyCount = (this.perPageItemAmount - this.list.length % this.perPageItemAmount);\r\n // for (let i = 0; i < addEmptyCount; i++) {\r\n // this.list.push(Category.NewCategory(startIndex + i, null, null));\r\n // }\r\n // }\r\n // filterList(): void {\r\n // this.list = [Category.unCategory];\r\n\r\n // let displayCount = 0;\r\n // let pageItemCount = 0;\r\n\r\n // if (!this.filter.text) {\r\n // this.setListSn(this.sourceList);\r\n // this.list.push(...this.sourceList);\r\n // // this.displayCount = this.editCategoryPopupService.categoryList.count;\r\n // displayCount = this.editCategoryPopupService.categoryList.count;\r\n // pageItemCount = displayCount + 1;\r\n // } else if (this.filter.text) {\r\n // this.list = this.sourceList.filter(category => {\r\n // if (category.text.toLocaleLowerCase().indexOf(this.filter.text.toLocaleLowerCase()) === -1) {\r\n // return false;\r\n // }\r\n\r\n // return true;\r\n // });\r\n // this.setListSn(this.list);\r\n // displayCount = this.list.length;\r\n // pageItemCount = displayCount;\r\n // }\r\n\r\n // this.fillEmptyItem(displayCount + 1);\r\n\r\n\r\n // this.pageChange.update(displayCount, pageItemCount, this.perPageItemAmount);\r\n // // this.pageChange.goToPage(1);\r\n // // this.pageChange.clickGoToPage(1);\r\n // }\r\n // revertItem(): void {\r\n // this.editCategoryPopupService.selectCategory(this.editCategoryPopupService.noteCategory);\r\n // this.editCategoryPopupService.selectSubcategory(this.editCategoryPopupService.noteSubcategory);\r\n // }\r\n // clickRevertItem(): void {\r\n // this.revertItem();\r\n\r\n // this.filterList();\r\n\r\n // this.goToItemPageIndex(this.selectedCategory);\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /** 選單開關 */\r\n toggleMenu(editItemElement: any): void {\r\n // console.log(editItemElement);\r\n if (this.openedMenuElement === editItemElement) {\r\n this.closeMenu();\r\n } else {\r\n this.openedMenuElement = editItemElement;\r\n }\r\n }\r\n closeMenu(): void {\r\n this.openedMenuElement = null;\r\n }\r\n checkElementHasClass(element: Element, className: string): boolean {\r\n return element.classList &&\r\n element.classList.contains(className);\r\n }\r\n checkCursorClickTargetMenu(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a === this.openedMenuElement\r\n || this.checkElementHasClass(a, 'create-category-popup'));\r\n }\r\n @HostListener('document:click', ['$event']) checkClickMenuCloseOrNot(ev: MouseEvent): void {\r\n if (!this.openedMenuElement) {\r\n return;\r\n }\r\n if (!this.checkCursorClickTargetMenu(ev)) {\r\n this.closeMenu();\r\n }\r\n }\r\n\r\n\r\n\r\n /** 確定按鈕 */\r\n disableConfirmButton(): boolean {\r\n return this.editCategoryPopupService.selectedCategory === this.editCategoryPopupService.option.note_category\r\n && this.editCategoryPopupService.selectedSubcategory === this.editCategoryPopupService.option.note_subcategory;\r\n\r\n // if (this.editCategoryPopupService.noteCategory === Category.unCategory\r\n // && this.editCategoryPopupService.selectedCategory === Category.unCategory) {\r\n // return true;\r\n // }\r\n // if (this.editCategoryPopupService.noteCategory.text === this.editCategoryPopupService.selectedCategory.text\r\n // && this.editCategoryPopupService.noteSubcategory === Subcategory.unSubcategory\r\n // && this.editCategoryPopupService.selectedSubcategory === Subcategory.unSubcategory) {\r\n // return true;\r\n // }\r\n // return this.editCategoryPopupService.noteCategory.text === this.editCategoryPopupService.selectedCategory.text\r\n // && this.editCategoryPopupService.selectedSubcategory.category === this.editCategoryPopupService.selectedCategory.text\r\n // && this.editCategoryPopupService.noteSubcategory.text === this.editCategoryPopupService.selectedSubcategory.text;\r\n }\r\n clickConfirm(): void {\r\n if (this.orderCheckAlert()) { return; }\r\n\r\n // this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n this.confirm.emit(1);\r\n }\r\n\r\n\r\n /** 排序 */\r\n // moveCategorySn(sourceText: string, newCategory: Category): void {\r\n // const list = this.sourceList;\r\n // let sourceIndex = list.findIndex(v => v.text === sourceText);\r\n // // 找不到原始類別,是新類別,排在最後\r\n // if (sourceIndex === -1) {\r\n // sourceIndex = Number.MAX_SAFE_INTEGER;\r\n // list.push(newCategory);\r\n // } else {\r\n // // 去掉要移動的類別\r\n // list.splice(sourceIndex, 1);\r\n\r\n // let targetIndex = list.findIndex(v => v.sn === newCategory.sn);\r\n // if (targetIndex < 0) {\r\n // targetIndex = newCategory.sn;\r\n // }\r\n // if (sourceIndex <= targetIndex\r\n // || sourceIndex === -1) {\r\n // targetIndex += 1;\r\n // }\r\n\r\n // list.splice(targetIndex, 0, newCategory);\r\n // }\r\n\r\n\r\n // CategoryList.reindexCategoryListSn(list);\r\n // }\r\n orderCheckAlert(): boolean {\r\n // if (this.sourceOrderList != null) {\r\n // alert('請先儲存排序!');\r\n // return true;\r\n // }\r\n if (this.hasAutoSort) {\r\n alert('請先儲存排序!');\r\n return true;\r\n }\r\n return false;\r\n }\r\n // reindexListSn(list: Category[]): void {\r\n // list.forEach((v, i) => {\r\n // v.sn = i + 1;\r\n // });\r\n // }\r\n\r\n\r\n\r\n\r\n /** 彈窗 - 新增 */\r\n openCreateCategoryPopup(): void {\r\n if (this.orderCheckAlert()) { return; }\r\n\r\n const list = this.editCategoryPopupService.option.category_list;\r\n // 開啟新增彈窗\r\n const compRef = this.createCategoryPopupOpenerService.openPopup(\r\n list,\r\n '新增類別', '重複類別', '確定新增',\r\n Category.defaultTypeId, list.length + 1, '', 0,\r\n list.length + 1\r\n );\r\n // 新增類別\r\n compRef.instance.submit.subscribe(newCategory => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // 開啟讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // 新增類別到清單\r\n\r\n\r\n\r\n\r\n // this.addCategory(newCategory);\r\n // this.refreshListLocal();\r\n // this.moveCategorySn('', newCategory);\r\n\r\n // 直接請求新增,之後重新取清單\r\n this.editCategoryPopupService.option.addCategoryListObserver(newCategory).subscribe(() => {\r\n // 廣播其他分頁更新清單\r\n const rtConnId = this.service.getConnectionId();\r\n if (rtConnId) {\r\n this.editCategoryPopupService.option.broadcastCategoryUpdateObserver(this.service.getConnectionId()).subscribe();\r\n }\r\n // 重新抓取清單\r\n const pls = this.editCategoryPopupService.pullAllListObserver().subscribe({\r\n complete: () => {\r\n // console.log('update edit category popup list');\r\n\r\n this.editCategoryPopupService.updateAllList();\r\n\r\n let inListItem = this.list.find(v => v.sn > -1 && v.text === newCategory.text);\r\n if (inListItem == null) {\r\n inListItem = Category.unCategory;\r\n }\r\n this.editCategoryPopupService.selectCategory(inListItem);\r\n // this.editCategoryPopupService.recatchSelectedItem();\r\n // // 找更新清單後的新增類別\r\n // const _newCategory = this.editCategoryPopupService.option.category_list.find(v => v.text === newCategory.text);\r\n // // 選擇新增的類別\r\n // this.editCategoryPopupService.selectedCategory = _newCategory;\r\n\r\n\r\n // 設定初始頁\r\n this.pageChange.currentIndex = this.findCategoryPage(this.editCategoryPopupService.selectedCategory);\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.editCategoryPopupService.option.category_list.length,\r\n this.editCategoryPopupService.categoryList.length,\r\n this.perPageItemAmount\r\n );\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n // 關閉讀取動畫\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // 關編輯彈窗\r\n this.popupManagerService.closeComponent(compRef);\r\n\r\n pls.unsubscribe();\r\n }\r\n });\r\n });\r\n\r\n\r\n\r\n // // 向S新增類別\r\n // this.editCategoryPopupService.addCategory(newCategory).subscribe(updateResult => {\r\n\r\n // // 排序清單\r\n // const snRequestData = CategoryList.getCategoryListOrderRequestData(this.sourceList);\r\n // // 向S更新類別順序\r\n // this.editCategoryPopupService.orderCategory(snRequestData).subscribe(updateOrderResult => {\r\n // // 廣播\r\n // // const connId = this.service.getConnectionId();\r\n // // if (connId) {\r\n // // }\r\n // this.editCategoryPopupService.service.broadcastCategoryUpdateObserver('').subscribe();\r\n\r\n // // 選擇新增的類別\r\n // this.selectItem(newCategory);\r\n // // 前往新類別所在頁面\r\n // this.goToItemPageIndex(newCategory);\r\n // // 關閉讀取動畫\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // // 關編輯彈窗\r\n // this.popupManagerService.closeComponent(compRef);\r\n\r\n\r\n\r\n // // 重新取類別、項目清單\r\n // // forkJoin(\r\n // // this.editCategoryPopupService.service.pullCategoryListObserver(),\r\n // // this.editCategoryPopupService.service.pullSubcategoryListObserver(),\r\n // // ).subscribe({\r\n // // complete: () => {\r\n // // // 選擇新增的類別\r\n // // this.editCategoryPopupService.selectCategory(newCategory);\r\n // // this.goToItemPageIndex(newCategory);\r\n\r\n // // // 關閉讀取動畫\r\n // // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // // // 關編輯彈窗\r\n // // this.popupManagerService.closeComponent(compRef);\r\n // // }\r\n // // });\r\n // });\r\n // });\r\n });\r\n }\r\n /** 新增類別 */\r\n // addCategory(newCategory: Category): void {\r\n // const itemIndex = this.sourceList.findIndex(v => v.sn === newCategory.sn);\r\n // if (itemIndex === -1) {\r\n // this.sourceList.push(newCategory);\r\n // } else {\r\n // this.sourceList.splice(itemIndex, 0, newCategory);\r\n // CategoryList.reindexCategoryListSn(this.sourceList);\r\n // }\r\n // }\r\n\r\n /** 彈窗 - 編輯 */\r\n openEditCategoryPopup(item: Category): void {\r\n if (this.orderCheckAlert()) { return; }\r\n\r\n // const list = this.sourceList;\r\n const sourceText = item.text;\r\n const list = this.editCategoryPopupService.option.category_list;\r\n const compRef = this.createCategoryPopupOpenerService.openPopup(\r\n list,\r\n '編輯類別', '重複類別', '確定修改',\r\n item.type_id, item.sn, item.text, item.reference_count,\r\n list.length\r\n );\r\n\r\n compRef.instance.submit.subscribe(editedCategory => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // this.editCategory(item, r, compRef);\r\n\r\n // 開啟讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n /** 編輯類別 */\r\n // this.editCategory(item, editedCategory);\r\n\r\n // 直接請求編輯,之後重新取清單\r\n this.editCategoryPopupService.option\r\n .editCategoryListObserver(sourceText, editedCategory)\r\n .subscribe(() => {\r\n // 重新抓取清單\r\n const pls = forkJoin(\r\n this.editCategoryPopupService.option.pullCategoryListObserver(),\r\n this.editCategoryPopupService.option.pullSubcategoryListObserver(),\r\n this.editCategoryPopupService.option.pullNoteListObserver()\r\n ).subscribe({\r\n complete: () => {\r\n this.editCategoryPopupService.selectedCategory = this.editCategoryPopupService.option.category_list.find(v => v.text === editedCategory.text);\r\n\r\n if (this.editCategoryPopupService.selectedSubcategory !== Subcategory.allSubcategory\r\n && this.editCategoryPopupService.selectedSubcategory !== Subcategory.unSubcategory) {\r\n this.editCategoryPopupService.selectedSubcategory = this.editCategoryPopupService.option.subcategory_list.find(v =>\r\n v.category_text === editedCategory.text\r\n && v.text === this.editCategoryPopupService.selectedSubcategory.text\r\n );\r\n }\r\n\r\n // this.editCategoryPopupService.recatchSelectedItem();\r\n this.editCategoryPopupService.updateAllList();\r\n // 設定初始頁\r\n this.pageChange.currentIndex = this.findCategoryPage(this.editCategoryPopupService.selectedCategory);\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.editCategoryPopupService.option.category_list.length,\r\n this.editCategoryPopupService.categoryList.length,\r\n this.perPageItemAmount\r\n );\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n // 關閉讀取動畫\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // 關編輯彈窗\r\n this.popupManagerService.closeComponent(compRef);\r\n\r\n pls.unsubscribe();\r\n }\r\n });\r\n });\r\n // // 向S更新類別\r\n // this.editCategoryPopupService.editCategory(sourceText, editedCategory).subscribe(updateEditResult => {\r\n // // 向S重新排序清單\r\n // const snRequestData = CategoryList.getCategoryListOrderRequestData(this.sourceList);\r\n // this.editCategoryPopupService.orderCategory(snRequestData).subscribe(updateOrderResult => {\r\n\r\n // // // 更新選擇筆記的類別項目\r\n // // if (this.editCategoryPopupService.noteCategory\r\n // // && this.editCategoryPopupService.noteCategory.text === sourceText) {\r\n // // this.editCategoryPopupService.noteCategory = newCategory;\r\n // // }\r\n\r\n // // 廣播\r\n // // const connId = this.service.getConnectionId();\r\n // // if (connId) {\r\n // // }\r\n // this.editCategoryPopupService.service.broadcastCategoryUpdateObserver('').subscribe();\r\n // this.editCategoryPopupService.service.broadcastSubcategoryUpdateObserver('').subscribe();\r\n\r\n // // 選擇新增的類別\r\n // this.selectItem(item);\r\n // // 前往新類別所在頁面\r\n // this.goToItemPageIndex(item);\r\n // // 關閉讀取動畫\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // // 關編輯彈窗\r\n // this.popupManagerService.closeComponent(compRef);\r\n\r\n // // // 重新取類別、項目清單\r\n // // forkJoin(\r\n // // this.editCategoryPopupService.service.pullCategoryListObserver(),\r\n // // this.editCategoryPopupService.service.pullSubcategoryListObserver(),\r\n // // ).subscribe({\r\n // // complete: () => {\r\n // // this.selectItem(newCategory);\r\n // // this.goToItemPageIndex(newCategory);\r\n // // this.edit.emit({ sourceName: sourceText, newCategory: newCategory });\r\n\r\n // // // 重新取筆記清單\r\n // // this.editCategoryPopupService.pullNoteObserver.subscribe(() => {\r\n // // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // // });\r\n\r\n // // // 關編輯彈窗\r\n // // this.popupManagerService.closeComponent(compRef);\r\n // // }\r\n // // });\r\n // });\r\n // });\r\n });\r\n }\r\n // /** 編輯類別 */\r\n // editCategory(sourceCategory: Category, newCategory: Category): void {\r\n\r\n // const itemIndex = this.sourceList.findIndex(v => v === sourceCategory);\r\n // const newIndex = this.sourceList.findIndex(v => v.sn === newCategory.sn);\r\n // this.sourceList.splice(itemIndex, 1);\r\n // this.sourceList.splice(newIndex, 0, sourceCategory);\r\n\r\n // sourceCategory.sn = newCategory.sn;\r\n // sourceCategory.text = newCategory.text;\r\n // sourceCategory.icon = newCategory.icon;\r\n\r\n // CategoryList.reindexCategoryListSn(this.sourceList);\r\n // console.log(this.sourceList);\r\n\r\n // // this.sourceList.sort((a, b) => a.sn - b.sn);\r\n // }\r\n // confirmEditCategory(sourceCategory: Category, newCategory: Category, compRef: ComponentRef): void {\r\n // this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // const sourceText = sourceCategory.text;\r\n // if (sourceCategory.sn !== newCategory.sn) {\r\n // this.moveCategorySn(sourceText, newCategory);\r\n // }\r\n\r\n // // 向S更新類別\r\n // this.editCategoryPopupService.editCategory(sourceText, newCategory).subscribe(updateEditResult => {\r\n // // 向S重新排序清單\r\n // const snRequestData = CategoryList.getCategoryListOrderRequestData(this.sourceList);\r\n // this.editCategoryPopupService.orderCategory(snRequestData).subscribe(updateOrderResult => {\r\n\r\n // // 更新選擇筆記的類別項目\r\n // if (this.editCategoryPopupService.noteCategory\r\n // && this.editCategoryPopupService.noteCategory.text === sourceText) {\r\n // this.editCategoryPopupService.noteCategory = newCategory;\r\n // }\r\n\r\n // // 廣播\r\n // const connId = this.service.getConnectionId();\r\n // if (connId) {\r\n // this.editCategoryPopupService.service.broadcastCategoryUpdateObserver(connId).subscribe();\r\n // }\r\n\r\n // // 重新取類別、項目清單\r\n // forkJoin(\r\n // this.editCategoryPopupService.service.pullCategoryListObserver(),\r\n // this.editCategoryPopupService.service.pullSubcategoryListObserver(),\r\n // ).subscribe({\r\n // complete: () => {\r\n // this.selectItem(newCategory);\r\n // this.goToItemPageIndex(newCategory);\r\n // this.edit.emit({ sourceName: sourceText, newCategory: newCategory });\r\n\r\n // // 重新取筆記清單\r\n // this.editCategoryPopupService.pullNoteObserver.subscribe(() => {\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // });\r\n\r\n // // 關編輯彈窗\r\n // this.popupManagerService.closeComponent(compRef);\r\n // }\r\n // });\r\n // });\r\n // });\r\n // }\r\n // orderCategoryList(compRef: ComponentRef, goToItem: Category, callback: Function = null): void {\r\n // //向S重新排序清單\r\n // let snRequestData = CategoryList.getCategoryListOrderRequestData(this.sourceList);\r\n\r\n // this.editCategoryPopupService.orderCategory(snRequestData).subscribe(updateOrderResult => {\r\n // //重新取類別清單\r\n // let subscribeList = this.editCategoryPopupService.service.pullCategoryList();\r\n // subscribeList.add(() => {\r\n // //重新過濾清單\r\n // if (goToItem) {\r\n // this.selectItem(goToItem);\r\n // this.goToItemPageIndex(goToItem);\r\n // }\r\n // if (callback) {\r\n // callback();\r\n // }\r\n // subscribeList.remove(subscribeList);\r\n // });\r\n // //重新取項目清單(對應被更改的類別)\r\n // this.editCategoryPopupService.service.pullSubcategoryList();\r\n // //關彈窗\r\n // this.popupManagerService.closeComponent(compRef);\r\n // });\r\n // }\r\n\r\n\r\n /** 彈窗 - 刪除 */\r\n openDeleteCategoryPopup(item: Category): void {\r\n if (this.orderCheckAlert()) { return; }\r\n\r\n if (confirm('確定刪除類別?')) {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // 開啟讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n //\r\n this.editCategoryPopupService.option.deleteCategoryObserver(item.text).subscribe(() => {\r\n // 刷新清單\r\n const pls = this.editCategoryPopupService.pullAllListObserver()\r\n .subscribe({\r\n complete: () => {\r\n this.editCategoryPopupService.selectedCategory = Category.unCategory;\r\n this.editCategoryPopupService.updateAllList();\r\n // 設定初始頁\r\n this.pageChange.currentIndex = this.findCategoryPage(this.editCategoryPopupService.selectedCategory);\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.editCategoryPopupService.option.category_list.length,\r\n this.editCategoryPopupService.categoryList.length,\r\n this.perPageItemAmount\r\n );\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n pls.unsubscribe();\r\n }\r\n });\r\n });\r\n\r\n // /** 刪除項目 */\r\n // this.deleteCategory(item);\r\n\r\n // // 刪除類別\r\n // this.editCategoryPopupService.deleteCategory(item.text).subscribe(r => {\r\n\r\n // // 排序清單\r\n // const snRequestData = CategoryList.getCategoryListOrderRequestData(this.sourceList);\r\n // this.editCategoryPopupService.orderCategory(snRequestData).subscribe(updateOrderResult => {\r\n\r\n // // 檢查筆記的類別是否被刪除的類別\r\n // // if (this.editCategoryPopupService.noteCategory === item) {\r\n // // this.editCategoryPopupService.noteCategory = Category.unCategory;\r\n // // this.editCategoryPopupService.noteSubcategory = Subcategory.unSubcategory;\r\n // // }\r\n\r\n // // 廣播\r\n // // const connId = this.service.getConnectionId();\r\n // // if (connId) {\r\n // // }\r\n // this.editCategoryPopupService.service.broadcastCategoryUpdateObserver('').subscribe();\r\n // this.editCategoryPopupService.service.broadcastSubcategoryUpdateObserver('').subscribe();\r\n\r\n // // 選擇新增的類別\r\n // this.selectItem(Category.unCategory);\r\n // // 前往新類別所在頁面\r\n // this.goToItemPageIndex(Category.unCategory);\r\n // // 關閉讀取動畫\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // // // 重新取類別、項目清單\r\n // // forkJoin(\r\n // // this.editCategoryPopupService.service.pullCategoryListObserver(),\r\n // // this.editCategoryPopupService.service.pullSubcategoryListObserver(),\r\n // // ).subscribe({\r\n // // complete: () => {\r\n // // this.selectItem(Category.unCategory);\r\n\r\n // // this.editCategoryPopupService.pullNoteObserver.subscribe(() => {\r\n // // // 關閉讀取動畫\r\n // // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // // });\r\n\r\n // // // 廣播刪除\r\n // // this.delete.emit(item);\r\n // // }\r\n // // });\r\n // });\r\n // });\r\n }\r\n }\r\n // deleteCategory(category: Category): void {\r\n // const itemIndex = this.sourceList.findIndex(v => v === category);\r\n // this.sourceList.splice(itemIndex, 1);\r\n // CategoryList.reindexCategoryListSn(this.sourceList);\r\n // }\r\n\r\n\r\n autoOrder(): void {\r\n // 初始化\r\n this.keywordFinder.inputText.text = '';\r\n this.keywordFinder.searchedText = '';\r\n this.editCategoryPopupService.subcategorySearchKeyword = '';\r\n this.filter.text = '';\r\n this.editCategoryPopupService.updateAllList();\r\n this.pageChange.currentIndex = 1;\r\n this.pageChange.update(\r\n this.editCategoryPopupService.option.category_list.length,\r\n this.editCategoryPopupService.categoryList.length,\r\n this.perPageItemAmount\r\n );\r\n this.updateStartIndex();\r\n\r\n\r\n // 原類別清單\r\n const sourceCategoryList = this.editCategoryPopupService.option.category_list;\r\n // 設定虛擬清單\r\n const vList = [...sourceCategoryList];\r\n // 排序虛擬清單\r\n this.orderList(vList);\r\n\r\n\r\n this.virtualList = [];\r\n if (this.list.find(v => v === Category.unCategory)) {\r\n this.virtualList.push(Category.unCategory);\r\n }\r\n this.virtualList.push(...vList);\r\n\r\n\r\n this.hasAutoSort = true;\r\n\r\n\r\n\r\n // const checkList = JSON.parse(JSON.stringify(this.sourceList));\r\n // const sourceSnText = checkList.map(v => v.sn).join();\r\n // this.orderList(checkList);\r\n // const newSnText = checkList.map(v => v.sn).join();\r\n\r\n // if (sourceSnText === newSnText) { return; }\r\n\r\n\r\n // const list = this.sourceList;\r\n // // 備份原始排序\r\n // if (this.sourceOrderList == null) {\r\n // this.sourceOrderList = this.sourceList.map(v => {\r\n // return {\r\n // sn: v.sn,\r\n // category: v.text,\r\n // } as CategoryOrderRequestData;\r\n // }) as CategoryOrderRequestData[];\r\n // }\r\n\r\n // this.orderList(list);\r\n\r\n // CategoryList.reindexCategoryListSn(list);\r\n // console.log(list);\r\n // // this.filterList();\r\n }\r\n orderList(list: Category[]): void {\r\n const iconList = Object.keys(Category.typeIdIconDict).map(key => Category.typeIdIconDict[key]);\r\n list.sort((a, b) => {\r\n let aIconIndex = iconList.findIndex(v => v === a.icon);\r\n if (aIconIndex === -1) {\r\n aIconIndex = iconList.findIndex(v => v === Category.oldIconMapToNewIcon[a.icon]);\r\n }\r\n let bIconIndex = iconList.findIndex(v => v === b.icon);\r\n if (bIconIndex === -1) {\r\n bIconIndex = iconList.findIndex(v => v === Category.oldIconMapToNewIcon[b.icon]);\r\n }\r\n\r\n if (aIconIndex === -1 && bIconIndex !== -1) {\r\n return 1;\r\n } else if (aIconIndex !== -1 && bIconIndex === -1) {\r\n return -1;\r\n }\r\n\r\n if (aIconIndex < bIconIndex) {\r\n return -1;\r\n } else if (aIconIndex > bIconIndex) {\r\n return 1;\r\n }\r\n\r\n // aIconIndex == bIconIndex\r\n\r\n if (a.text.length < b.text.length) {\r\n return -1;\r\n } else if (a.text.length > b.text.length) {\r\n return 1;\r\n }\r\n\r\n // a.text.length == b.text.length\r\n\r\n return a.text.localeCompare(b.text);\r\n });\r\n }\r\n confirmOrder(): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n const orderCategoryRequestData: CategoryOrderRequestData[] = [];\r\n this.virtualList\r\n .filter(v => v.sn > 0)\r\n .forEach((v, i) => {\r\n orderCategoryRequestData.push({\r\n category_text: v.text,\r\n sn: (i + 1)\r\n });\r\n });\r\n // const orderCategoryRequestData = CategoryList.getCategoryListOrderRequestData(this.virtualList.filter(v => v.sn > 0));\r\n // console.log(orderCategoryRequestData);\r\n\r\n this.editCategoryPopupService.option\r\n .orderCategoryListObserver(orderCategoryRequestData)\r\n .subscribe(() => {\r\n // 刷新清單\r\n const pls = this.editCategoryPopupService.pullAllListObserver()\r\n .subscribe({\r\n complete: () => {\r\n this.editCategoryPopupService.recatchSelectedItem();\r\n this.editCategoryPopupService.updateAllList();\r\n this.hasAutoSort = false;\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n pls.unsubscribe();\r\n }\r\n });\r\n });\r\n // this.editCategoryPopupService.orderCategory(orderCategoryRequestData).subscribe(() => {\r\n // this.sourceOrderList = null;\r\n // this.editCategoryPopupService.service.pullCategoryListObserver().subscribe(() => {\r\n\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // });\r\n // });\r\n }\r\n revertOrder(): void {\r\n this.hasAutoSort = false;\r\n // // this.sourceOrderList.forEach((v, i) => {\r\n // // this.sourceList[i].sn = v.sn;\r\n // // });\r\n // const list = this.sourceList;\r\n // this.sourceList.sort((a, b) => {\r\n // return this.sourceOrderList.findIndex(v => v.category === a.text)\r\n // - this.sourceOrderList.findIndex(v => v.category === b.text);\r\n // });\r\n\r\n // // this.sourceOrderList.map(v => {\r\n // // return list.find(c => c.text == v.category);\r\n // // });\r\n\r\n // this.sourceOrderList = null;\r\n\r\n // CategoryList.reindexCategoryListSn(list);\r\n // // this.filterList();\r\n }\r\n // disableOrderConfirmButton(): boolean {\r\n // return this.sourceOrderList == null;\r\n // }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
新增類別
\r\n
\r\n \r\n
\r\n
\r\n
自動排序
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
類別內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
類別內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
類別內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
確定置換\r\n
\r\n
\r\n
儲存排序
\r\n
還原排序
\r\n \r\n
\r\n
\r\n
\r\n\r\n
{{sn}}
\r\n
\r\n
\r\n\r\n
{{item.sn>0?sn:''}}
\r\n
\r\n
\r\n
\r\n 0\"> [{{item.reference_count}}]\r\n
-1\"\r\n [ngClass]=\"{'open':openedMenuElement==editItemElement}\">\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
編輯類別
\r\n
\r\n
\r\n
\r\n
刪除類別
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, EventEmitter, Output, HostListener, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { EditCategoryTabId } from './edit-category-tab-id';\r\nimport { EditCategoryPopupService } from './edit-category-popup.service';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { EditCategoryPopupConfirmData } from './edit-category-popup-confirm-data';\r\nimport { EditCategoryData } from './edit-category-data';\r\nimport { IEditCategoryService } from './i-edit-category-service';\r\nimport { JudgmentCaseList } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment-case-list';\r\nimport { JudgmentService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment.service';\r\nimport { JudicialInterpretService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret.service';\r\nimport { JudgmentCase } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment-case';\r\nimport { JudicialInterpretCase } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-case';\r\nimport { BroadcastEventListener } from 'ng2-signalr';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { EditCategoryPopupOption } from './edit-category-popup-option';\r\nimport { Category } from '../category/category';\r\nimport { Subcategory } from '../category/subcategory';\r\n\r\n@Component({\r\n selector: 'app-edit-category-popup',\r\n templateUrl: './edit-category-popup.component.html',\r\n styleUrls: ['./edit-category-popup.component.scss'],\r\n providers: [EditCategoryPopupService]\r\n})\r\nexport class EditCategoryPopupComponent extends BasePopup implements OnInit, AfterViewInit, OnDestroy {\r\n @Output() confirm: EventEmitter = new EventEmitter();\r\n // @Output() deleteCategory: EventEmitter = new EventEmitter();\r\n // @Output() deleteSubcategory: EventEmitter = new EventEmitter();\r\n // @Output() editCategory: EventEmitter = new EventEmitter();\r\n // @Output() editSubcategory: EventEmitter = new EventEmitter();\r\n\r\n editCategoryTab: any = EditCategoryTabId;\r\n selectedTab: EditCategoryTabId = EditCategoryTabId.Category;\r\n editCategoryPopupService: EditCategoryPopupService;\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n signalrListeners: { [key: string]: BroadcastEventListener } = {};\r\n\r\n constructor(\r\n editCategoryPopupService: EditCategoryPopupService,\r\n // private filterPopupService: FilterPopupService,\r\n private popupManagerService: PopupManagerService,\r\n private service: AppService,\r\n ) {\r\n super();\r\n\r\n this.editCategoryPopupService = editCategoryPopupService;\r\n }\r\n\r\n ngOnInit() { }\r\n ngAfterViewInit(): void { }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n /** 增加即時同步監聽 */\r\n addListener(name: string): BroadcastEventListener {\r\n this.signalrListeners[name] = this.service.addGetSignlaRSystemListener(name);\r\n return this.signalrListeners[name];\r\n }\r\n /** 清除即時同步監聽 */\r\n clearListener(): void {\r\n Object.keys(this.signalrListeners)\r\n .forEach(key => {\r\n this.service.removeSignalrListener(key);\r\n });\r\n }\r\n\r\n initPopup(option: EditCategoryPopupOption): void {\r\n this.editCategoryPopupService.option = option;\r\n\r\n this.selectedTab = option.tab_id;\r\n\r\n this.editCategoryPopupService.selectedCategory = option.note_category;\r\n this.editCategoryPopupService.selectedSubcategory = option.note_subcategory;\r\n }\r\n closePopup(): void {\r\n // this.clickShowPopup = false;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n selectTab(tab: EditCategoryTabId): void {\r\n this.selectedTab = tab;\r\n }\r\n\r\n\r\n clickConfirm(): void {\r\n const data: EditCategoryPopupConfirmData = {\r\n category: this.editCategoryPopupService.selectedCategory,\r\n subcategory: this.editCategoryPopupService.selectedSubcategory,\r\n } as EditCategoryPopupConfirmData;\r\n console.log(data);\r\n\r\n this.confirm.emit(data);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27 && this.popupManagerService.getLastComponentRef() === this.componentRef) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) closeMenu(ev: MouseEvent) {\r\n if (this.checkCursorClickClassName(ev, 'edit-category-popup')\r\n && this.checkCursorClickClassName(ev, 'mask-full-screen')) {\r\n this.closePopup();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n
檔案管理
\r\n \r\n
\r\n
\r\n
\r\n
類別
\r\n
項目
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EditCategoryPopupComponent } from './edit-category-popup.component';\r\nimport { CategoryComponent } from './category/category.component';\r\nimport { SubcategoryComponent } from './subcategory/subcategory.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { KeywordFinderModule } from '../keyword-finder/keyword-finder.module';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\nimport { PageChangeModule } from '../page-change/page-change.module';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { EditCategoryPopupService } from './edit-category-popup.service';\r\nimport { CreateCategoryPopupModule } from '../create-category-popup/create-category-popup.module';\r\nimport { CreateSubcategoryPopupModule } from '../create-subcategory-popup/create-subcategory-popup.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n PageChangeModule,\r\n KeywordFinderModule,\r\n PipeHighlightModule,\r\n MaskFullScreenModule,\r\n CreateCategoryPopupModule,\r\n CreateSubcategoryPopupModule,\r\n FramePopupCloseModule,\r\n ],\r\n // providers: [\r\n // EditCategoryPopupService\r\n // ],\r\n declarations: [\r\n EditCategoryPopupComponent,\r\n CategoryComponent,\r\n SubcategoryComponent,\r\n ],\r\n exports: [\r\n EditCategoryPopupComponent,\r\n CategoryComponent,\r\n SubcategoryComponent,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n PageChangeModule,\r\n KeywordFinderModule,\r\n PipeHighlightModule,\r\n ]\r\n})\r\nexport class EditCategoryPopupModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, Subscription, Observer, Observable, forkJoin } from 'rxjs';\r\nimport { DataUpdateResult } from 'projects/lwlib/src/data-update-result';\r\nimport { IEditCategoryService } from './i-edit-category-service';\r\nimport { CategoryOrderRequestData } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/category-order-request-data';\r\nimport { SubcategoryOrderRequestData } from './subcategory-order-request-data';\r\nimport { JudgmentCase } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment-case';\r\nimport { JudicialInterpretCase } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-case';\r\nimport { JudgmentService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment.service';\r\nimport { JudicialInterpretService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret.service';\r\nimport { EditCategoryPopupOption } from './edit-category-popup-option';\r\nimport { tap } from 'rxjs/operators';\r\nimport { Category } from '../category/category';\r\nimport { Subcategory } from '../category/subcategory';\r\n\r\n// @Injectable()\r\n@Injectable()\r\nexport class EditCategoryPopupService {\r\n\r\n\r\n // categoryList$: Subject;\r\n // subcategoryList$: Subject;\r\n option: EditCategoryPopupOption;\r\n\r\n // 右側,篩選條件\r\n selectedCategory: Category; // 目前條件區,已選擇類別\r\n selectedSubcategory: Subcategory; // 目前條件區,已選擇項目\r\n\r\n // 類別清單\r\n categoryList: Category[] = [];\r\n // 項目清單\r\n subcategoryList: Subcategory[] = [];\r\n\r\n\r\n\r\n // 類別項目清單更新\r\n categoryList$: Subject = new Subject();\r\n subcategoryList$: Subject = new Subject();\r\n\r\n // 選擇的類別項目更新\r\n selectedCategory$: Subject = new Subject();\r\n selectedSubcategory$: Subject = new Subject();\r\n\r\n // 搜尋關鍵字\r\n categorySearchKeyword: string = '';\r\n subcategorySearchKeyword: string = '';\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // service: IEditCategoryService;\r\n // case_id: string;\r\n // get note(): JudgmentCase | JudicialInterpretCase {\r\n // return this.getNoteByCaseId(this.case_id);\r\n // }\r\n // get noteCategory(): Category {\r\n // return this.note && this.note.category ? this.note.category : Category.unCategory;\r\n // }\r\n // get noteSubcategory(): Subcategory {\r\n // return this.note && this.note.subcategory ? this.note.subcategory : Subcategory.unSubcategory;\r\n // }\r\n // get categoryList(): CategoryList { return this.service.categoryList; }\r\n // get subcategoryList(): SubcategoryList { return this.service.subcategoryList; }\r\n\r\n // _selectedCategory: Category;\r\n // _selectedSubcategory: Subcategory;\r\n\r\n // get selectedCategory(): Category {\r\n // return this._selectedCategory;\r\n // // return this.service.categoryList.list.find(v => v.text === this._selectedCategory.text)\r\n // // || Category.unCategory;\r\n // }\r\n // set selectedCategory(value: Category) { this._selectedCategory = value; }\r\n\r\n // get selectedSubcategory(): Subcategory {\r\n // return this._selectedSubcategory;\r\n // // return this.service.subcategoryList.list.find(v => v.category === this._selectedSubcategory.category\r\n // // && v.text === this._selectedSubcategory.text)\r\n // // || Subcategory.unSubcategory;\r\n // }\r\n // set selectedSubcategory(value: Subcategory) { this._selectedSubcategory = value; }\r\n\r\n // selectedCategory$: Subject = new Subject();\r\n // selectedSubcategory$: Subject = new Subject();\r\n\r\n // pullNoteFunc: Function;\r\n // pullNoteObserver: Observable;\r\n\r\n // inited: boolean = false;\r\n\r\n\r\n\r\n constructor() { }\r\n\r\n pullAllList(): void {\r\n const s = forkJoin(\r\n this.option.pullCategoryListObserver(),\r\n this.option.pullSubcategoryListObserver()\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.recatchSelectedItem();\r\n this.updateAllList();\r\n s.unsubscribe();\r\n }\r\n });\r\n }\r\n pullAllListObserver(): Observable {\r\n return forkJoin(\r\n this.option.pullCategoryListObserver(),\r\n this.option.pullSubcategoryListObserver()\r\n );\r\n // const palos = forkJoin(\r\n // this.option.pullCategoryListObserver(),\r\n // this.option.pullSubcategoryListObserver()\r\n // ).subscribe({\r\n // complete: () => {\r\n // palos.unsubscribe();\r\n // }\r\n // });\r\n }\r\n recatchSelectedItem(): void {\r\n if (this.selectedCategory\r\n && this.selectedCategory !== Category.allCategory\r\n && this.selectedCategory !== Category.unCategory) {\r\n this.selectedCategory = this.option.category_list.find(v => v.text === this.selectedCategory.text);\r\n }\r\n if (this.selectedSubcategory\r\n && this.selectedSubcategory !== Subcategory.allSubcategory\r\n && this.selectedSubcategory !== Subcategory.unSubcategory) {\r\n this.selectedSubcategory = this.option.subcategory_list\r\n .find(v => v.category_text === this.selectedSubcategory.category_text\r\n && v.text === this.selectedSubcategory.text);\r\n }\r\n }\r\n\r\n /** 更新全部清單 */\r\n updateAllList(): void {\r\n\r\n\r\n\r\n // 設定類別清單\r\n this.categoryList = [];\r\n if (this.categorySearchKeyword) {\r\n // 有關鍵字搜尋\r\n this.categoryList.push(...this.option.category_list.filter(v => v.text.indexOf(this.categorySearchKeyword) > -1));\r\n } else {\r\n // 無關鍵字搜尋\r\n // this.categoryList.push(Category.allCategory);\r\n this.categoryList.push(Category.unCategory);\r\n this.categoryList.push(...this.option.category_list);\r\n }\r\n\r\n // 設定項目清單\r\n let sourceSubcategoryList = this.option.subcategory_list;\r\n if (this.selectedCategory == null) {\r\n this.selectedCategory = Category.unCategory;\r\n }\r\n if (this.selectedCategory !== Category.allCategory\r\n && this.selectedCategory !== Category.unCategory) {\r\n // 選擇,使用者類別 = 指定所屬類別的項目清單\r\n sourceSubcategoryList = this.option.subcategory_list.filter(v => v.category_text === this.selectedCategory.text);\r\n }\r\n\r\n this.subcategoryList = [];\r\n if (this.subcategorySearchKeyword) {\r\n // 有關建字搜尋\r\n sourceSubcategoryList = sourceSubcategoryList.filter(v => v.text.indexOf(this.subcategorySearchKeyword) > -1);\r\n } else {\r\n // 無關鍵字搜尋\r\n // this.subcategoryList.push(Subcategory.allSubcategory);\r\n this.subcategoryList.push(Subcategory.unSubcategory);\r\n }\r\n this.subcategoryList.push(...sourceSubcategoryList);\r\n\r\n // if (this.selectedCategory !== Category.unCategory\r\n // && this.selectedSubcategory.category !== this.selectedCategory.text\r\n // ) {\r\n // this.selectedSubcategory = Subcategory.unSubcategory;\r\n // }\r\n }\r\n\r\n\r\n\r\n\r\n // getNoteByCaseId(case_id: string) {\r\n // let note;\r\n // if (this.service instanceof JudgmentService) {\r\n // note = (this.service).noteList.list.find(v => v.judgment_id === case_id);\r\n // } else if (this.service instanceof JudicialInterpretService) {\r\n // note = (this.service).noteList.list.find(v => v.judicial_interpret_id === case_id);\r\n // }\r\n // return note;\r\n // }\r\n\r\n // init(\r\n // service: IEditCategoryService,\r\n // pullNoteObserver: Observable\r\n // ): void {\r\n\r\n // // this.categoryList$ = service.categoryList$;\r\n // // this.subcategoryList$ = service.subcategoryList$;\r\n\r\n // // this.categoryList = service.categoryList;\r\n // // this.subcategoryList = service.subcategoryList;\r\n\r\n // // this.categoryList$.subscribe(r => {\r\n // // this.categoryList = r;\r\n // // });\r\n // // this.subcategoryList$.subscribe(r => {\r\n // // this.subcategoryList = r;\r\n // // });\r\n\r\n // // this.service = service;\r\n // // this.pullNoteObserver = pullNoteObserver;\r\n\r\n // // this.inited = true;\r\n // }\r\n\r\n // pullCategoryList(): void {\r\n // this.service.pullCategoryList();\r\n // }\r\n // pullSubcategoryList(): void {\r\n // this.service.pullSubcategoryList();\r\n // }\r\n\r\n\r\n // addCategory(category: Category): Observable {\r\n // return this.service.addCategoryObserver(category);\r\n // }\r\n // editCategory(old_category: string, new_category: Category): Observable {\r\n // return this.service.editCategoryObserver(old_category, new_category);\r\n // }\r\n // deleteCategory(text: string): Observable {\r\n // return this.service.deleteCategoryObserver(text);\r\n // }\r\n // orderCategory(list: CategoryOrderRequestData[]): Observable {\r\n // return this.service.orderCategoryObserver(list);\r\n // }\r\n\r\n // addSubcategory(subcategory: Subcategory): Observable {\r\n // return this.service.addSubcategoryObserver(subcategory);\r\n // }\r\n // editSubcategory(category: string, old_subcategory: string, new_subcategory: Subcategory): Observable {\r\n // return this.service.editSubcategoryObserver(category, old_subcategory, new_subcategory);\r\n // }\r\n // deleteSubcategory(category: string, text: string): Observable {\r\n // return this.service.deleteSubcategoryObserver(category, text);\r\n // }\r\n // orderSubcategory(list: SubcategoryOrderRequestData[]): Observable {\r\n // return this.service.orderSubcategoryObserver(list);\r\n // }\r\n\r\n\r\n\r\n // setNoteCategory(category: Category): void {\r\n // this.noteCategory = category;\r\n // }\r\n // setNoteSubcategory(subcategory: Subcategory): void {\r\n // this.noteSubcategory = subcategory;\r\n // }\r\n selectCategory(category: Category): void {\r\n // this.selectedCategory$.next(category);\r\n // const _category = category || Category.unCategory;\r\n\r\n // let inputCategory = Category.unCategory;\r\n // if (category != null\r\n // && category !== Category.unCategory) {\r\n // const inListItem = this.categoryList.find(v => v.sn > -1 && v.text === category.text);\r\n // if (inListItem) {\r\n // inputCategory = inListItem;\r\n // }\r\n // }\r\n // if (this.selectedCategory !== inputCategory) {\r\n // this.selectedSubcategory = Subcategory.unSubcategory;\r\n // }\r\n\r\n if (this.selectedCategory !== category) {\r\n this.selectedSubcategory = Subcategory.unSubcategory;\r\n }\r\n this.selectedCategory = category;\r\n\r\n this.updateAllList();\r\n // if (category !== Category.unCategory\r\n // && this.option.noteCategory !== Category.unCategory\r\n // && category.text !== this.noteCategory.text) {\r\n // this.selectedSubcategory = Subcategory.unSubcategory;\r\n // }\r\n }\r\n selectSubcategory(subcategory: Subcategory): void {\r\n // this.selectedSubcategory$.next(subcategory);\r\n let inputSubcategory = Subcategory.unSubcategory;\r\n if (subcategory != null\r\n && subcategory !== Subcategory.unSubcategory) {\r\n const inListItem = this.subcategoryList.find(v => v.sn > -1 && v.category_text === subcategory.category_text && v.text === subcategory.text);\r\n if (inListItem) {\r\n inputSubcategory = inListItem;\r\n }\r\n }\r\n\r\n if (inputSubcategory !== Subcategory.unSubcategory) {\r\n this.selectedCategory = this.categoryList.find(v => v.sn > -1 && v.text === inputSubcategory.category_text);\r\n }\r\n this.selectedSubcategory = inputSubcategory;\r\n\r\n this.updateAllList();\r\n // if (subcategory !== Subcategory.unSubcategory) {\r\n // const category = this.categoryList.list.find(v => v.text === subcategory.category);\r\n // if (category) {\r\n // this.selectedCategory = category;\r\n // }\r\n // }\r\n }\r\n // updateCategoryList(): void {\r\n // this.pullCategoryList();\r\n // }\r\n // updateSubcategoryList(): void {\r\n // this.pullSubcategoryList();\r\n // }\r\n\r\n // restore(): void {\r\n // this.selectedCategory = this.noteCategory;\r\n // this.selectedSubcategory = this.noteSubcategory;\r\n // }\r\n // restoreCategory(): void {\r\n // this.selectCategory(this.noteCategory);\r\n // }\r\n // restoreSubcategory(): void {\r\n // this.selectSubcategory(this.noteSubcategory);\r\n // }\r\n}\r\n","export enum EditCategoryTabId {\r\n Category = 0,\r\n Subcategory = 1,\r\n}\r\n","export class SubcategoryOrderRequestData {\r\n category_text: string;\r\n sn: number;\r\n subcategory_text: string;\r\n}\r\n","import { Component, OnInit, ViewChild, Input, OnDestroy, Output, EventEmitter, HostListener, ComponentRef } from '@angular/core';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { EditCategoryTabId } from '../edit-category-tab-id';\r\nimport { PageChangeComponent } from '../../page-change/page-change.component';\r\nimport { KeywordFinderComponent } from '../../keyword-finder/keyword-finder.component';\r\nimport { EditCategoryPopupService } from '../edit-category-popup.service';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { PopupManagerService } from '../../popup-manager/popup-manager.service';\r\nimport { DeleteConfirmPopupOpenerService } from '../../delete-confirm-popup/delete-confirm-popup-opener.service';\r\nimport { CreateSubcategoryPopupOpenerService } from '../../create-subcategory-popup/create-subcategory-popup-opener.service';\r\nimport { EditSubcategoryData } from '../edit-subcategory-data';\r\nimport { CreateSubcategoryPopupComponent } from '../../create-subcategory-popup/create-subcategory-popup.component';\r\nimport { forkJoin } from 'rxjs';\r\nimport { SubcategoryOrderRequestData } from '../subcategory-order-request-data';\r\nimport { LoadingIconService } from '../../loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Subcategory } from '../../category/subcategory';\r\nimport { Category } from '../../category/category';\r\nimport { concatMap } from 'rxjs/operators';\r\n@Component({\r\n selector: 'app-subcategory',\r\n templateUrl: './subcategory.component.html',\r\n styleUrls: ['./subcategory.component.scss']\r\n})\r\nexport class SubcategoryComponent implements OnInit, OnDestroy {\r\n constructor(\r\n // private filterPopupService: FilterPopupService,\r\n public appCommonService: AppCommonService,\r\n private popupManagerService: PopupManagerService,\r\n private editCategoryPopupService: EditCategoryPopupService,\r\n private createSubcategoryPopupOpenerService: CreateSubcategoryPopupOpenerService,\r\n private deleteConfirmPopupOpenerService: DeleteConfirmPopupOpenerService,\r\n private loadingIconService: LoadingIconService,\r\n private service: AppService,\r\n ) { }\r\n\r\n @ViewChild(PageChangeComponent, { static: true }) pageChange: PageChangeComponent;\r\n @ViewChild(KeywordFinderComponent, { static: true }) keywordFinder: KeywordFinderComponent;\r\n\r\n get selectedSubcategory(): Subcategory { return this.editCategoryPopupService.selectedSubcategory; }\r\n get list(): Subcategory[] { return this.editCategoryPopupService.subcategoryList; }\r\n\r\n perPageItemAmount: number = 18;\r\n startIndex: number = 0;\r\n startSn: number = 1;\r\n get leftList(): Subcategory[] {\r\n return [0, 1, 2, 3, 4, 5]\r\n .map((n, i) => {\r\n return this.hasAutoSort ?\r\n this.virtualList[this.startIndex + n] :\r\n this.list[this.startIndex + n];\r\n });\r\n }\r\n get middleList(): Subcategory[] {\r\n return [6, 7, 8, 9, 10, 11]\r\n .map((n, i) => {\r\n return this.hasAutoSort ?\r\n this.virtualList[this.startIndex + n] :\r\n this.list[this.startIndex + n];\r\n });\r\n }\r\n get rightList(): Subcategory[] {\r\n return [12, 13, 14, 15, 16, 17]\r\n .map((n, i) => {\r\n return this.hasAutoSort ?\r\n this.virtualList[this.startIndex + n] :\r\n this.list[this.startIndex + n];\r\n });\r\n }\r\n\r\n filter: Subcategory = Subcategory.NewSubcategory(null, Subcategory.defaultTypeId, null, null);\r\n openedMenuElement: Element;\r\n\r\n hasAutoSort: boolean = false;\r\n virtualList: Subcategory[] = [];\r\n newOrderFullSubcategoryList: Subcategory[] = [];\r\n\r\n\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n @Output() confirm: EventEmitter = new EventEmitter();\r\n @Output() delete: EventEmitter = new EventEmitter();\r\n @Output() edit: EventEmitter = new EventEmitter();\r\n\r\n\r\n\r\n\r\n\r\n // @Output() confirm: EventEmitter = new EventEmitter();\r\n // @Output() delete: EventEmitter = new EventEmitter();\r\n // @Output() edit: EventEmitter = new EventEmitter();\r\n\r\n // listAreaType: EditCategoryTabId = EditCategoryTabId.Subcategory;\r\n // listAreaName: string = '項目';\r\n\r\n // // listSource: Subcategory[] = [];\r\n // // sourceList: Subcategory[] = [];\r\n // // list: Subcategory[] = [];\r\n // // displayCount: number;\r\n // get sourceList(): Subcategory[] { return this.editCategoryPopupService.subcategoryList.list; }\r\n // get list(): Subcategory[] { return this.itemList(); }\r\n // filter: Subcategory = Subcategory.NewSubcategory(null, null, null, null);\r\n // get filterKeyword(): string { return this.filter.text && this.filter.text.trim() ? this.filter.text.trim() : ''; }\r\n\r\n // get snOffset(): number { return this.filter.text.trim() ? 1 : 0; }\r\n // perPageItemAmount: number = 18;\r\n // get leftStart(): number { return this.pageChange.perPageAmount * (this.pageChange.currentIndex - 1); }\r\n // get leftStop(): number { return this.leftStart + 6; }\r\n // get middleStart(): number { return this.leftStop; }\r\n // get middleStop(): number { return this.middleStart + 6; }\r\n // get rightStart(): number { return this.middleStop; }\r\n // get rightStop(): number { return this.rightStart + 6; }\r\n\r\n // // selectedSubcategory: Subcategory;\r\n // get selectedSubcategory(): Subcategory { return this.editCategoryPopupService.selectedSubcategory; }\r\n // set selectedSubcategory(value: Subcategory) { this.editCategoryPopupService.selectedSubcategory = value; }\r\n\r\n // openedMenuElement: Element;\r\n get disableAddSubcategory(): boolean { return this.editCategoryPopupService.selectedCategory === Category.unCategory; }\r\n\r\n // sourceOrderList: SubcategoryOrderRequestData[];\r\n\r\n // subscriptions: SubscriptionGroup = {};\r\n\r\n\r\n\r\n /** 初始化 */\r\n ngOnInit() {\r\n\r\n // 換頁器換頁\r\n this.subscriptions.pageChange = this.pageChange.pageChange.subscribe(pageIndex => {\r\n this.pageChange.currentIndex = pageIndex;\r\n // console.log(pageIndex, this.pageChange.currentIndex);\r\n this.updateStartIndex();\r\n });\r\n // 換頁器,刷新\r\n this.subscriptions.pageRefresh = this.pageChange.refresh.subscribe(() => {\r\n this.editCategoryPopupService.pullAllList();\r\n });\r\n\r\n // 關鍵字搜尋\r\n this.subscriptions.keywordSearch = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n if (keyword !== '' && this.orderCheckAlert()) {\r\n this.keywordFinder.searchedText = '';\r\n return;\r\n }\r\n this.editCategoryPopupService.subcategorySearchKeyword = keyword;\r\n this.filter.text = keyword;\r\n this.editCategoryPopupService.updateAllList();\r\n this.pageChange.update(\r\n this.editCategoryPopupService.subcategoryList.filter(v => v !== Subcategory.unSubcategory).length,\r\n this.editCategoryPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n this.pageChange.currentIndex = 1;\r\n this.updateStartIndex();\r\n });\r\n\r\n\r\n\r\n // 更新清單頁\r\n this.editCategoryPopupService.updateAllList();\r\n // 設定初始頁\r\n this.pageChange.currentIndex = this.findSubcategoryPage(this.editCategoryPopupService.selectedSubcategory);\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.editCategoryPopupService.subcategoryList.filter(v => v !== Subcategory.unSubcategory).length,\r\n this.editCategoryPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n\r\n\r\n\r\n // this.sourceList = JSON.parse(JSON.stringify(this.editCategoryPopupService.subcategoryList.list));\r\n\r\n // this.selectedSubcategory = this.editCategoryPopupService.selectedSubcategory;\r\n // if (!this.selectedSubcategory) {\r\n // this.selectedSubcategory = Subcategory.unSubcategory;\r\n // }\r\n\r\n // this.initSubscribeFilterList();\r\n // this.initSubscribePage();\r\n\r\n // this.goToItemPageIndex(this.selectedSubcategory);\r\n\r\n // this.disableAddSubcategory =\r\n // this.editCategoryPopupService.selectedCategory === Category.unCategory\r\n // || this.editCategoryPopupService.selectedCategory == null;\r\n // console.log(this.sourceList);\r\n\r\n // this.filter.text = '';\r\n // this.pageChange.update(this.getPageDisplayCount(), this.list.length, this.perPageItemAmount);\r\n\r\n // this.subscriptions.keywordFinder = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n // this.pageChange.currentIndex = 1;\r\n // this.filter.text = keyword;\r\n // // this.list = this.itemList();\r\n // this.pageChange.update(this.getPageDisplayCount(), this.list.length, this.perPageItemAmount);\r\n // });\r\n // this.subscriptions.subcategoryList = this.editCategoryPopupService.service.subcategoryList$.subscribe(v => {\r\n // this.pageChange.update(this.getPageDisplayCount(), this.list.length, this.perPageItemAmount);\r\n // });\r\n\r\n // this.goToItemPageIndex(this.selectedSubcategory);\r\n }\r\n ngOnDestroy(): void {\r\n this.editCategoryPopupService.subcategorySearchKeyword = '';\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n updateStartIndex(): void {\r\n this.startIndex = (this.pageChange.currentIndex - 1) * this.perPageItemAmount;\r\n\r\n // 有關建字搜尋,從1開始\r\n if (this.editCategoryPopupService.subcategorySearchKeyword) {\r\n this.startSn = (this.pageChange.currentIndex - 1) * this.perPageItemAmount + 1;\r\n } else {\r\n // 沒關鍵字搜尋,從0開始 (體系歸納沒有全部類)\r\n this.startSn = (this.pageChange.currentIndex - 1) * this.perPageItemAmount - 0;\r\n }\r\n }\r\n\r\n findSubcategoryPage(subcategory: Subcategory): number {\r\n const index = this.list.findIndex(v => v === subcategory);\r\n if (index === -1) {\r\n return 1;\r\n }\r\n const pageIndex = Math.floor(index / this.perPageItemAmount) + 1;\r\n return pageIndex;\r\n }\r\n\r\n\r\n // /** 取清單 */\r\n // itemList(): Subcategory[] {\r\n // const list = [];\r\n // this.autoOrder();\r\n // let list1 = this.sourceList;\r\n // if (this.editCategoryPopupService.selectedCategory !== Category.unCategory) {\r\n // list1 = this.sourceList.filter(v => v.category === this.editCategoryPopupService.selectedCategory.text);\r\n // }\r\n\r\n\r\n // let fillStartIndex: number = 1;\r\n // const keyword = this.filterKeyword.toLocaleLowerCase();\r\n // if (keyword) {\r\n // const _list = list1.filter(v => v.text.toLocaleLowerCase().trim().indexOf(keyword) > -1);\r\n // list.push(..._list);\r\n // fillStartIndex = list.length + 1;\r\n // } else {\r\n // list.push(Subcategory.unSubcategory);\r\n // list.push(...list1);\r\n // fillStartIndex = list.length;\r\n // }\r\n\r\n\r\n\r\n // const maxPageItemCount = Math.ceil(list.length / this.perPageItemAmount) * this.perPageItemAmount;\r\n // const fillCount = maxPageItemCount - list.length;\r\n // const emptyItems = this.getEmptyItem(fillCount, fillStartIndex);\r\n // list.push(...emptyItems);\r\n\r\n // return list;\r\n // }\r\n autoOrder(): void {\r\n // console.log(\r\n // this.editCategoryPopupService.selectedCategory,\r\n // this.list,\r\n // this.editCategoryPopupService.option.subcategory_list\r\n // );\r\n\r\n if (this.hasAutoSort) { return; }\r\n\r\n // 初始化\r\n this.keywordFinder.inputText.text = '';\r\n this.keywordFinder.searchedText = '';\r\n this.editCategoryPopupService.subcategorySearchKeyword = '';\r\n this.filter.text = '';\r\n this.editCategoryPopupService.updateAllList();\r\n this.pageChange.currentIndex = 1;\r\n this.pageChange.update(\r\n this.editCategoryPopupService.subcategoryList.filter(v => v !== Subcategory.unSubcategory).length,\r\n this.editCategoryPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n this.updateStartIndex();\r\n\r\n\r\n // 兩階段排序之一,先照分類排序\r\n const cloneSubcategoryList: Subcategory[] = JSON.parse(JSON.stringify(this.editCategoryPopupService.option.subcategory_list));\r\n const categoryIndexDict = {};\r\n for (let i = 0; i < this.editCategoryPopupService.option.category_list.length; i++) {\r\n const category = this.editCategoryPopupService.option.category_list[i];\r\n categoryIndexDict[category.text] = i;\r\n }\r\n cloneSubcategoryList.sort((a, b) => {\r\n const categoryA = categoryIndexDict[a.category_text];\r\n const categoryB = categoryIndexDict[b.category_text];\r\n const categoryCp = categoryA - categoryB;\r\n return categoryCp;\r\n });\r\n\r\n // 依照分類區分所有項目\r\n const categorySubcategoryBlock: { [key: string]: Subcategory[] } = {};\r\n for (let i = 0; i < cloneSubcategoryList.length; i++) {\r\n const cs = cloneSubcategoryList[i];\r\n if (categorySubcategoryBlock[cs.category_text] == null) {\r\n categorySubcategoryBlock[cs.category_text] = [];\r\n }\r\n categorySubcategoryBlock[cs.category_text].push(cs);\r\n }\r\n\r\n // 取當前選擇的分類所屬分項清單\r\n const selectedCategory: Category = this.editCategoryPopupService.selectedCategory;\r\n const sortFunc = (a: Subcategory, b: Subcategory): number => {\r\n const typeIdCp = a.type_id - b.type_id;\r\n if (typeIdCp !== 0) {\r\n return typeIdCp;\r\n }\r\n\r\n return a.text.localeCompare(b.text);\r\n };\r\n const newSubcategoryOrderIndexDict: { [key: string]: number } = {};\r\n this.newOrderFullSubcategoryList = [];\r\n if (selectedCategory.text === Category.unCategory.text) {\r\n // 選擇未分類->排序所有分項\r\n cloneSubcategoryList.sort(sortFunc);\r\n cloneSubcategoryList.forEach((v, i) => {\r\n this.newOrderFullSubcategoryList.push(v);\r\n newSubcategoryOrderIndexDict[`${v.category_text}-${v.text}`] = i;\r\n });\r\n } else {\r\n // 選擇特定分類->排序特定分類下的分項\r\n categorySubcategoryBlock[selectedCategory.text].sort(sortFunc);\r\n let index = 0;\r\n this.editCategoryPopupService.option.category_list.forEach(ci => {\r\n if (categorySubcategoryBlock[ci.text] == null) { return; }\r\n\r\n categorySubcategoryBlock[ci.text].forEach(v => {\r\n this.newOrderFullSubcategoryList.push(v);\r\n newSubcategoryOrderIndexDict[`${v.category_text}-${v.text}`] = index;\r\n index++;\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n // 用原始清單得來排序\r\n const currentOrderedSubcategoryList = [...this.editCategoryPopupService.option.subcategory_list];\r\n currentOrderedSubcategoryList.sort((a, b) =>\r\n newSubcategoryOrderIndexDict[`${a.category_text}-${a.text}`]\r\n - newSubcategoryOrderIndexDict[`${b.category_text}-${b.text}`]\r\n );\r\n\r\n\r\n this.virtualList = [];\r\n const hasUnSubcategory = this.list.some(v => v.text === Subcategory.unSubcategory.text);\r\n if (hasUnSubcategory) {\r\n this.virtualList.push(Subcategory.unSubcategory);\r\n }\r\n if (selectedCategory.text === Category.unCategory.text) {\r\n this.virtualList.push(...currentOrderedSubcategoryList);\r\n } else {\r\n this.virtualList.push(...currentOrderedSubcategoryList.filter(v => v.category_text === selectedCategory.text));\r\n }\r\n\r\n this.hasAutoSort = true;\r\n\r\n this.editCategoryPopupService.updateAllList();\r\n this.updateStartIndex();\r\n }\r\n confirmOrder(): void {\r\n if (!this.hasAutoSort) { return; }\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n const newSubcategoryOrderIndexDict: { [key: string]: number } = {};\r\n const orderCategoryRequestData: SubcategoryOrderRequestData[] = this.newOrderFullSubcategoryList.map((v, i) => {\r\n newSubcategoryOrderIndexDict[`${v.category_text}-${v.text}`] = i;\r\n\r\n const request: SubcategoryOrderRequestData = new SubcategoryOrderRequestData();\r\n request.category_text = v.category_text;\r\n request.subcategory_text = v.text;\r\n request.sn = i + 1;\r\n return request;\r\n });\r\n\r\n this.editCategoryPopupService.option.subcategory_list.forEach(v => {\r\n v.sn = newSubcategoryOrderIndexDict[`${v.category_text}-${v.text}`] + 1;\r\n });\r\n this.editCategoryPopupService.option.subcategory_list.sort((a, b) => a.sn - b.sn);\r\n\r\n\r\n this.editCategoryPopupService.option\r\n .orderSubcategoryListObserver(orderCategoryRequestData)\r\n .pipe(\r\n concatMap(() => this.editCategoryPopupService.pullAllListObserver()),\r\n )\r\n .subscribe({\r\n complete: () => {\r\n this.editCategoryPopupService.recatchSelectedItem();\r\n this.editCategoryPopupService.updateAllList();\r\n this.hasAutoSort = false;\r\n this.virtualList = [];\r\n this.newOrderFullSubcategoryList = [];\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n }\r\n });\r\n }\r\n revertOrder(): void {\r\n if (!this.hasAutoSort) { return; }\r\n this.hasAutoSort = false;\r\n this.virtualList = [];\r\n this.newOrderFullSubcategoryList = [];\r\n }\r\n orderCheckAlert(): boolean {\r\n if (this.hasAutoSort) {\r\n alert('請先儲存排序!');\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // /** 取填充用的項目 */\r\n // getEmptyItem(count: number, startIndex: number): Subcategory[] {\r\n // return new Array(count).fill(0).map((v, i) => Subcategory.NewSubcategory(startIndex + i, null, null, null));\r\n // }\r\n // /** 取換頁器用的顯示數量 */\r\n // getPageDisplayCount(): number {\r\n // let list1 = this.sourceList;\r\n // if (this.editCategoryPopupService.selectedCategory !== Category.unCategory) {\r\n // list1 = this.sourceList.filter(v => v.category === this.editCategoryPopupService.selectedCategory.text);\r\n // }\r\n\r\n // const keyword = this.filterKeyword.toLocaleLowerCase();\r\n // if (keyword) {\r\n // const _list = list1.filter(v => v.text.toLocaleLowerCase().trim().indexOf(keyword) > -1);\r\n // return _list.length;\r\n // } else {\r\n // return list1.length;\r\n // }\r\n // }\r\n /** 取項目icon style */\r\n getSubcategoryIconStyle(subcategory: Subcategory): any {\r\n // debugger;\r\n return Subcategory.getIconStyle(subcategory);\r\n }\r\n\r\n // /** 轉換序號 */\r\n // itemSn(item: Subcategory, sn: number): string {\r\n // // if (item.sn < 0) {\r\n // // return '';\r\n // // }\r\n // // if (!item.virtual_index) {\r\n // // return item.sn.toString();\r\n // // }\r\n // // return item.virtual_index.toString();\r\n // if (item.sn < 1) {\r\n // return '';\r\n // }\r\n // return sn.toString();\r\n // }\r\n\r\n // /** 前往項目頁面 */\r\n // goToItemPageIndex(item: Subcategory): void {\r\n // if (item && item.sn >= 1) {\r\n // const itemIndex = this.list.findIndex(v => v.category === item.category && v.text === item.text);\r\n // if (itemIndex > -1) {\r\n // const pageIndex = Math.floor((itemIndex / this.perPageItemAmount) + 1);\r\n // this.pageChange.clickGoToPage(pageIndex);\r\n // return;\r\n // }\r\n // }\r\n // this.pageChange.clickGoToPage(1);\r\n // // if (item && item.sn > -1) {\r\n // // const index = this.list.findIndex(a => a.text === item.text && a.category === item.category) + 1;\r\n // // let pageIndex = Math.ceil(index / this.pageChange.perPageAmount);\r\n // // pageIndex = this.pageChange.lastIndex < pageIndex ? this.pageChange.lastIndex : pageIndex;\r\n // // pageIndex = pageIndex === 0 ? 1 : pageIndex;\r\n // // this.pageChange.clickGoToPage(pageIndex);\r\n // // } else {\r\n // // this.pageChange.clickGoToPage(1);\r\n // // }\r\n // }\r\n\r\n // /** 本地刷新清單 */\r\n // refreshListLocal(): void {\r\n // // this.list = this.itemList();\r\n // this.pageChange.update(this.getPageDisplayCount(), this.list.length, this.perPageItemAmount);\r\n // }\r\n // refreshList(): void {\r\n // this.editCategoryPopupService.service.pullCategoryList();\r\n // this.editCategoryPopupService.service.pullSubcategoryList();\r\n // }\r\n\r\n /** 選擇項目 */\r\n selectItem(item: Subcategory): void {\r\n this.editCategoryPopupService.selectSubcategory(item);\r\n this.pageChange.update(\r\n this.editCategoryPopupService.subcategoryList.filter(v => v !== Subcategory.unSubcategory).length,\r\n this.editCategoryPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n\r\n this.pageChange.currentIndex = this.findSubcategoryPage(this.editCategoryPopupService.selectedSubcategory);\r\n this.editCategoryPopupService.updateAllList();\r\n this.updateStartIndex();\r\n // if (!item.text) { return; }\r\n // this.editCategoryPopupService.selectSubcategory(item);\r\n // this.pageChange.update(this.getPageDisplayCount(), this.list.length, this.perPageItemAmount);\r\n // this.goToItemPageIndex(item);\r\n }\r\n\r\n\r\n\r\n\r\n // initSubscribeFilterList(): void {\r\n // this.subscriptions.subcategoryList = this.editCategoryPopupService.subcategoryList$.subscribe(l => {\r\n // this.sourceList = JSON.parse(JSON.stringify(this.editCategoryPopupService.subcategoryList.list));\r\n\r\n // this.filterList();\r\n // this.goToItemPageIfOutOfPage(this.selectedSubcategory);\r\n // });\r\n\r\n // this.subscriptions.selectedSubcategoryList = this.editCategoryPopupService.subcategoryList$.subscribe(l => {\r\n // this.filterList();\r\n // this.goToItemPageIfOutOfPage(this.selectedSubcategory);\r\n // });\r\n\r\n // this.subscriptions.selectedCategory = this.editCategoryPopupService.selectedCategory$.subscribe(r => {\r\n\r\n // this.disableAddSubcategory =\r\n // this.editCategoryPopupService.selectedCategory === Category.unCategory\r\n // || this.editCategoryPopupService.selectedCategory == null;\r\n\r\n // this.filterList();\r\n // });\r\n\r\n // this.subscriptions.keywordFinder = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n // this.filter.text = keyword;\r\n // this.filterList();\r\n // });\r\n // }\r\n // initSubscribePage(): void {\r\n // this.subscriptions.pageChange = this.pageChange.clickGoToIndex$.subscribe(n => {\r\n // this.updatePageRange(n);\r\n // });\r\n\r\n // this.subscriptions.selectedSubcategory = this.editCategoryPopupService.selectedSubcategory$.subscribe(s => {\r\n // this.selectedSubcategory = s;\r\n\r\n // if (!this.selectedSubcategory) {\r\n // this.selectedSubcategory = Subcategory.unSubcategory;\r\n // }\r\n\r\n // this.goToItemPageIndex(this.selectedSubcategory);\r\n // });\r\n // }\r\n /** 頁面項目 */\r\n // updatePageRange(pageIndex: number): void {\r\n // this.leftStart = this.pageChange.perPageAmount * (pageIndex - 1);\r\n // this.leftStop = this.leftStart + 6;\r\n // this.middleStart = this.leftStop;\r\n // this.middleStop = this.middleStart + 6;\r\n // this.rightStart = this.middleStop;\r\n // this.rightStop = this.rightStart + 6;\r\n // }\r\n // pullItemList(): void {\r\n // this.editCategoryPopupService.pullSubcategoryList();\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n // goToItemPageIfOutOfPage(item: Subcategory): void {\r\n // if (item && item.sn > -1) {\r\n // const index = this.list.findIndex(a => a.text === item.text) + 1;\r\n // if (index === 0) {\r\n // this.pageChange.clickGoToPage(1);\r\n // } else {\r\n // let pageIndex = Math.ceil(index / this.pageChange.perPageAmount);\r\n // if (this.pageChange.lastIndex < pageIndex) {\r\n // pageIndex = this.pageChange.lastIndex;\r\n // pageIndex = pageIndex === 0 ? 1 : pageIndex;\r\n // this.pageChange.clickGoToPage(pageIndex);\r\n // }\r\n // }\r\n\r\n // }\r\n // }\r\n // /** 過濾清單 */\r\n // setListSn(list: Subcategory[]): Subcategory[] {\r\n // for (let i = 0; i < list.length; i++) {\r\n // if (!list[i].text) {\r\n // continue;\r\n // }\r\n // list[i].virtual_index = (i + 1);\r\n // }\r\n // return list;\r\n // }\r\n // fillEmptyItem(startIndex: number) {\r\n // const addEmptyCount = (this.perPageItemAmount - this.list.length % this.perPageItemAmount);\r\n // // console.log('add empty count ' + addEmptyCount);\r\n\r\n // for (let i = 0; i < addEmptyCount; i++) {\r\n // this.list.push(Subcategory.NewSubcategory(startIndex + i, null, null, null));\r\n // }\r\n // }\r\n // filterList(): void {\r\n // this.list = [Subcategory.unSubcategory];\r\n\r\n // this.autoOrder();\r\n\r\n // let displayCount = 0;\r\n // let pageItemCount = 0;\r\n\r\n // let _subcategoryList = this.sourceList;\r\n // if (this.editCategoryPopupService.selectedCategory\r\n // && this.editCategoryPopupService.selectedCategory.sn > -1) {\r\n // // debugger;\r\n // _subcategoryList = this.sourceList.filter(subcategory => {\r\n // return subcategory.category === this.editCategoryPopupService.selectedCategory.text;\r\n // });\r\n // }\r\n\r\n // if (!this.filter.text) {\r\n // this.setListSn(_subcategoryList);\r\n // this.list.push(..._subcategoryList);\r\n // displayCount = _subcategoryList.length;\r\n // pageItemCount = displayCount + 1;\r\n // } else if (this.filter.text) {\r\n // this.list = _subcategoryList.filter(subcategory => {\r\n // if (subcategory.text.toLocaleLowerCase().indexOf(this.filter.text.toLocaleLowerCase()) === -1) {\r\n // return false;\r\n // }\r\n // return true;\r\n // });\r\n // this.setListSn(this.list);\r\n // displayCount = this.list.length;\r\n // pageItemCount = displayCount;\r\n // }\r\n\r\n // this.fillEmptyItem(displayCount + 1);\r\n\r\n // this.pageChange.update(displayCount, pageItemCount, this.perPageItemAmount);\r\n // // this.pageChange.goToPage(1);\r\n // this.pageChange.clickGoToPage(1);\r\n // }\r\n // revertItem(): void {\r\n // this.editCategoryPopupService.selectCategory(this.editCategoryPopupService.noteCategory);\r\n // this.editCategoryPopupService.selectSubcategory(this.editCategoryPopupService.noteSubcategory);\r\n // }\r\n // clickRevertItem(): void {\r\n // this.revertItem();\r\n // // this.editCategoryPopupService.restore();\r\n\r\n // this.filterList();\r\n\r\n // this.goToItemPageIndex(this.selectedSubcategory);\r\n // }\r\n\r\n\r\n /** 選單開關 */\r\n toggleMenu(editItemElement: any): void {\r\n // console.log(editItemElement);\r\n if (this.openedMenuElement === editItemElement) {\r\n this.closeMenu();\r\n } else {\r\n this.openedMenuElement = editItemElement;\r\n }\r\n }\r\n closeMenu(): void {\r\n this.openedMenuElement = null;\r\n }\r\n checkElementHasClass(element: Element, className: string): boolean {\r\n return element.classList &&\r\n element.classList.contains(className);\r\n }\r\n checkCursorClickTargetMenu(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a => a === this.openedMenuElement\r\n || this.checkElementHasClass(a, 'create-subcategory-popup'));\r\n }\r\n @HostListener('document:click', ['$event']) checkClickMenuCloseOrNot(ev: MouseEvent): void {\r\n if (!this.openedMenuElement) {\r\n return;\r\n }\r\n if (!this.checkCursorClickTargetMenu(ev)) {\r\n this.closeMenu();\r\n }\r\n }\r\n\r\n\r\n /** 確定按鈕 */\r\n disableConfirmButton(): boolean {\r\n return this.editCategoryPopupService.selectedCategory === this.editCategoryPopupService.option.note_category\r\n && this.editCategoryPopupService.selectedSubcategory === this.editCategoryPopupService.option.note_subcategory;\r\n\r\n // if (this.editCategoryPopupService.noteCategory === Category.unCategory\r\n // && this.editCategoryPopupService.selectedCategory === Category.unCategory) {\r\n // return true;\r\n // }\r\n // if (this.editCategoryPopupService.noteCategory.text === this.editCategoryPopupService.selectedCategory.text\r\n // && this.editCategoryPopupService.noteSubcategory === Subcategory.unSubcategory\r\n // && this.editCategoryPopupService.selectedSubcategory === Subcategory.unSubcategory) {\r\n // return true;\r\n // }\r\n // return this.editCategoryPopupService.noteCategory.text === this.editCategoryPopupService.selectedCategory.text\r\n // && this.editCategoryPopupService.selectedSubcategory.category === this.editCategoryPopupService.selectedCategory.text\r\n // && this.editCategoryPopupService.noteSubcategory.text === this.editCategoryPopupService.selectedSubcategory.text;\r\n }\r\n clickConfirm(): void {\r\n if (this.orderCheckAlert()) { return; }\r\n\r\n // this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n this.confirm.emit(1);\r\n }\r\n\r\n // /** 排序 */\r\n // moveSubcategorySn(category: string, sourceText: string, newSubcategory: Subcategory): void {\r\n // const list = this.sourceList;\r\n // let sourceIndex = list.findIndex(v => v.category === category && v.text === sourceText);\r\n // if (sourceIndex < 0) {\r\n // sourceIndex = Number.MAX_SAFE_INTEGER;\r\n // list.push(newSubcategory);\r\n // } else {\r\n // list.splice(sourceIndex, 1);\r\n\r\n // let targetIndex = list.findIndex(v => v.sn === newSubcategory.sn && v.category === category);\r\n // if (targetIndex < 0) {\r\n // targetIndex = list.findIndex(v => v.category === category);\r\n // targetIndex = targetIndex + newSubcategory.sn - 1;\r\n // }\r\n // if (sourceIndex <= targetIndex\r\n // || sourceIndex === -1) {\r\n // targetIndex += 1;\r\n // }\r\n\r\n // list.splice(targetIndex, 0, newSubcategory);\r\n // }\r\n\r\n // SubcategoryList.reindexSubcategoryListSn(list);\r\n // }\r\n\r\n\r\n /** 彈窗 */\r\n openCreateSubcategoryPopup(): void {\r\n if (this.orderCheckAlert()) { return; }\r\n\r\n // const list = this.sourceList;\r\n // const list1 = list.filter(v => v.category === this.editCategoryPopupService.selectedCategory.text);\r\n // const lastSn = list1.length ? list1[list1.length - 1].sn + 1 : 1;\r\n const list = this.editCategoryPopupService.subcategoryList;\r\n const compRef = this.createSubcategoryPopupOpenerService.openPopup(\r\n this.list,\r\n '新增項目', '重複項目', '確定新增',\r\n Subcategory.defaultTypeId, list.length, null,\r\n 0, list.length,\r\n this.editCategoryPopupService.selectedCategory.text\r\n );\r\n compRef.instance.submit.subscribe((newSubcategory: Subcategory) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // 開啟讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n this.editCategoryPopupService.option.addSubcategoryListObserver(newSubcategory).subscribe(() => {\r\n // 廣播其他分頁更新清單\r\n const rtConnId = this.service.getConnectionId();\r\n if (rtConnId) {\r\n this.editCategoryPopupService.option.broadcastSubcategoryUpdateObserver(rtConnId).subscribe();\r\n }\r\n // 重新抓取清單\r\n const pls = this.editCategoryPopupService.pullAllListObserver().subscribe({\r\n complete: () => {\r\n this.editCategoryPopupService.updateAllList();\r\n\r\n let inListItem = this.list.find(v => v.sn > -1 && v.category_text === newSubcategory.category_text && v.text === newSubcategory.text);\r\n if (inListItem == null) {\r\n inListItem = Subcategory.unSubcategory;\r\n }\r\n this.editCategoryPopupService.selectSubcategory(inListItem);\r\n // this.editCategoryPopupService.recatchSelectedItem();\r\n // this.editCategoryPopupService.selectedCategory = this.editCategoryPopupService.option.category_list.find(v => v.text === this.editCategoryPopupService.selectedCategory.text);\r\n // // 找更新清單後的新增類別\r\n // const _newSubcategory = this.editCategoryPopupService.option.subcategory_list.find(v => v.category === newSubcategory.category && v.text === newSubcategory.text);\r\n // // 選擇新增的類別\r\n // this.editCategoryPopupService.selectedSubcategory = _newSubcategory;\r\n // this.editCategoryPopupService.updateAllList();\r\n // 設定初始頁\r\n this.pageChange.currentIndex = this.findSubcategoryPage(this.editCategoryPopupService.selectedSubcategory);\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.editCategoryPopupService.subcategoryList.filter(v => v !== Subcategory.unSubcategory).length,\r\n this.editCategoryPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n // 關閉讀取動畫\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // 關編輯彈窗\r\n this.popupManagerService.closeComponent(compRef);\r\n\r\n pls.unsubscribe();\r\n }\r\n });\r\n });\r\n\r\n\r\n // // 新增項目\r\n // this.addSubcategory(newSubcategory);\r\n // this.refreshListLocal();\r\n // // 向S新增項目\r\n // // const realSn =\r\n // // this.moveSubcategorySn(subcategory.category, '', subcategory);\r\n // // subcategory.category = this.editCategoryPopupService.selectedCategory.text;\r\n\r\n // // 向S新增項目\r\n // this.editCategoryPopupService.addSubcategory(newSubcategory).subscribe(updateResult => {\r\n\r\n // // 排序清單\r\n // const snRequestData = SubcategoryList.getSubcategoryListOrderRequestData(this.sourceList);\r\n // this.editCategoryPopupService.orderSubcategory(snRequestData).subscribe(orderResult => {\r\n\r\n // // 廣播\r\n // // const connId = this.service.getConnectionId();\r\n // // if (connId) {\r\n // // }\r\n // this.editCategoryPopupService.service.broadcastSubcategoryUpdateObserver('').subscribe();\r\n\r\n // // 選擇新增的類別\r\n // this.selectItem(newSubcategory);\r\n // // 前往新類別所在頁面\r\n // this.goToItemPageIndex(newSubcategory);\r\n // // 關閉讀取動畫\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // // 關編輯彈窗\r\n // this.popupManagerService.closeComponent(compRef);\r\n\r\n\r\n // // 重新取項目清單\r\n // // this.editCategoryPopupService.service.pullSubcategoryListObserver().subscribe({\r\n // // complete: () => {\r\n // // // 選擇新增的項目\r\n // // this.selectItem(newSubcategory);\r\n // // this.goToItemPageIndex(newSubcategory);\r\n\r\n // // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // // // 關彈窗\r\n // // this.popupManagerService.closeComponent(compRef);\r\n // // }\r\n // // });\r\n // });\r\n // });\r\n });\r\n }\r\n // /** 新增類別 */\r\n // addSubcategory(newSubcategory: Subcategory): void {\r\n // console.log(newSubcategory);\r\n // const itemIndex = this.sourceList.findIndex(v => v.category === newSubcategory.category && v.sn === newSubcategory.sn);\r\n // console.log(itemIndex);\r\n // if (itemIndex === -1) {\r\n // this.sourceList.push(newSubcategory);\r\n // } else {\r\n // this.sourceList.splice(itemIndex, 0, newSubcategory);\r\n // console.log(this.sourceList);\r\n // SubcategoryList.reindexSubcategoryListSn(this.sourceList);\r\n // console.log(this.sourceList);\r\n // }\r\n // }\r\n /** 彈窗 - 編輯 */\r\n openEditSubcategoryPopup(item: Subcategory): void {\r\n if (this.orderCheckAlert()) { return; }\r\n\r\n\r\n // const list = this.sourceList;\r\n const list = this.editCategoryPopupService.subcategoryList;\r\n const list1 = list.filter(v => v.category_text === this.editCategoryPopupService.selectedCategory.text);\r\n const lastSn = list1.length ? list1[list1.length - 1].sn : 1;\r\n // const lastSn = this.list.filter(v => v.virtual_index > -1).length;\r\n // console.log(item);\r\n\r\n // const list = this.editCategoryPopupService.option.subcategory_list;\r\n\r\n const sourceCategory = item.category_text;\r\n const sourceText = item.text;\r\n\r\n // 項目序號是看選擇類別的本地序號\r\n const compRef = this.createSubcategoryPopupOpenerService.openPopup(\r\n this.list,\r\n '編輯項目', '重複項目', '確定修改',\r\n item.type_id, item.sn, item.text,\r\n item.reference_count, lastSn,\r\n this.editCategoryPopupService.selectedCategory.text\r\n );\r\n\r\n compRef.instance.submit.subscribe((editedSubcategory: Subcategory) => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // 開啟讀取動畫\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // 向S更新類別,廣播更新筆記清單的筆記\r\n this.editCategoryPopupService.option\r\n .editSubcategoryListObserver(sourceCategory, sourceText, editedSubcategory)\r\n .subscribe(() => {\r\n const pls = forkJoin(\r\n this.editCategoryPopupService.option.pullCategoryListObserver(),\r\n this.editCategoryPopupService.option.pullSubcategoryListObserver(),\r\n this.editCategoryPopupService.option.pullNoteListObserver()\r\n ).subscribe({\r\n complete: () => {\r\n this.editCategoryPopupService.selectedSubcategory = this.editCategoryPopupService.option.subcategory_list\r\n .find(v => v.category_text === editedSubcategory.category_text && v.text === editedSubcategory.text);\r\n this.editCategoryPopupService.recatchSelectedItem();\r\n this.editCategoryPopupService.updateAllList();\r\n\r\n // 設定初始頁\r\n this.pageChange.currentIndex = this.findSubcategoryPage(this.editCategoryPopupService.selectedSubcategory);\r\n\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.editCategoryPopupService.subcategoryList.filter(v => v !== Subcategory.unSubcategory).length,\r\n this.editCategoryPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n // 關閉讀取動畫\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // 關編輯彈窗\r\n this.popupManagerService.closeComponent(compRef);\r\n\r\n pls.unsubscribe();\r\n }\r\n });\r\n });\r\n // // 向S重新排序清單\r\n // const snRequestData = SubcategoryList.getSubcategoryListOrderRequestData(this.sourceList);\r\n // this.editCategoryPopupService.orderSubcategory(snRequestData).subscribe(updateOrderResult => {\r\n // // 廣播\r\n // // const connId = this.service.getConnectionId();\r\n // // if (connId) {\r\n // // }\r\n // this.editCategoryPopupService.service.broadcastSubcategoryUpdateObserver('').subscribe();\r\n\r\n // // 選擇新增的類別\r\n // this.selectItem(item);\r\n // // 前往新類別所在頁面\r\n // this.goToItemPageIndex(item);\r\n // // 關閉讀取動畫\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // // 關編輯彈窗\r\n // this.popupManagerService.closeComponent(compRef);\r\n // });\r\n });\r\n }\r\n // /** 編輯類別 */\r\n // editSubcategory(sourceSubcategory: Subcategory, newSubcategory: Subcategory): void {\r\n // const itemIndex = this.sourceList.findIndex(v => v === sourceSubcategory);\r\n // const newIndex = this.sourceList.findIndex(v => v.category === newSubcategory.category && v.sn === newSubcategory.sn);\r\n // this.sourceList.splice(itemIndex, 1);\r\n // this.sourceList.splice(newIndex, 0, sourceSubcategory);\r\n\r\n // sourceSubcategory.sn = newSubcategory.sn;\r\n // sourceSubcategory.text = newSubcategory.text;\r\n // sourceSubcategory.icon = newSubcategory.icon;\r\n\r\n // console.log(this.sourceList);\r\n\r\n // SubcategoryList.reindexSubcategoryListSn(this.sourceList);\r\n // this.sourceList.sort((a, b) => a.sn - b.sn);\r\n // }\r\n\r\n openDeleteSubcategoryPopup(item: Subcategory): void {\r\n if (this.orderCheckAlert()) { return; }\r\n\r\n if (confirm('確定刪除項目?')) {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n \r\n // console.log('confirm delete subcategory');\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n // /** 刪除項目 */\r\n // this.deleteSubcategory(item);\r\n\r\n // 刪除項目\r\n this.editCategoryPopupService.option.deleteSubcategoryObserver(item.category_text, item.text).subscribe(() => {\r\n\r\n const pls = forkJoin(\r\n this.editCategoryPopupService.option.pullCategoryListObserver(),\r\n this.editCategoryPopupService.option.pullSubcategoryListObserver(),\r\n this.editCategoryPopupService.option.pullNoteListObserver()\r\n ).subscribe({\r\n complete: () => {\r\n this.editCategoryPopupService.selectedSubcategory = Subcategory.unSubcategory;\r\n this.editCategoryPopupService.updateAllList();\r\n\r\n // 設定初始頁\r\n this.pageChange.currentIndex = this.findSubcategoryPage(this.editCategoryPopupService.selectedSubcategory);\r\n\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.editCategoryPopupService.subcategoryList.filter(v => v !== Subcategory.unSubcategory).length,\r\n this.editCategoryPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n // 關閉讀取動畫\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n pls.unsubscribe();\r\n }\r\n });\r\n\r\n\r\n // // 向S重新排序清單\r\n // const snRequestData = SubcategoryList.getSubcategoryListOrderRequestData(this.sourceList);\r\n // this.editCategoryPopupService.orderSubcategory(snRequestData).subscribe(updateOrderResult => {\r\n\r\n // // 廣播\r\n // // const connId = this.service.getConnectionId();\r\n // // if (connId) {\r\n // // }\r\n // this.editCategoryPopupService.service.broadcastSubcategoryUpdateObserver('').subscribe();\r\n\r\n // // 選擇新增的類別\r\n // this.selectItem(Subcategory.unSubcategory);\r\n // // 前往新類別所在頁面\r\n // this.goToItemPageIndex(Subcategory.unSubcategory);\r\n // // 關閉讀取動畫\r\n // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n\r\n\r\n // // // 重新取類別、項目清單\r\n // // forkJoin(\r\n // // this.editCategoryPopupService.service.pullCategoryListObserver(),\r\n // // this.editCategoryPopupService.service.pullSubcategoryListObserver(),\r\n // // ).subscribe({\r\n // // complete: () => {\r\n // // this.selectItem(Subcategory.unSubcategory);\r\n\r\n // // this.editCategoryPopupService.pullNoteObserver.subscribe(() => {\r\n // // this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditCategory);\r\n // // });\r\n\r\n // // // 廣播刪除\r\n // // this.delete.emit(item);\r\n // // }\r\n // // });\r\n // });\r\n });\r\n }\r\n }\r\n // deleteSubcategory(subcategory: Subcategory): void {\r\n // const itemIndex = this.sourceList.findIndex(v => v === subcategory);\r\n // this.sourceList.splice(itemIndex, 1);\r\n // SubcategoryList.reindexSubcategoryListSn(this.sourceList);\r\n // }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
新增項目
\r\n
\r\n \r\n
\r\n
\r\n
自動排序
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
項目內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
項目內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
項目內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
確定置換\r\n
\r\n
\r\n
儲存排序
\r\n
還原排序
\r\n \r\n
\r\n
\r\n
\r\n\r\n
{{sn}}
\r\n
\r\n
\r\n\r\n
{{item.sn>0?sn:''}}
\r\n
\r\n
\r\n
\r\n 0\"> [{{item.reference_count}}]\r\n
-1\"\r\n [ngClass]=\"{'open':openedMenuElement==editItemElement}\">\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
編輯項目
\r\n
\r\n
\r\n
\r\n
刪除項目
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { EditSnPopupComponent } from './edit-sn-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditSnPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(EditSnPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(\r\n defaultSn: number,\r\n maxSn: number,\r\n ): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(\r\n defaultSn,\r\n maxSn,\r\n );\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { NumberInputerComponent } from '../number-inputer/number-inputer.component';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\n\r\n@Component({\r\n selector: 'app-edit-sn-popup',\r\n templateUrl: './edit-sn-popup.component.html',\r\n styleUrls: ['./edit-sn-popup.component.scss']\r\n})\r\nexport class EditSnPopupComponent extends BasePopup implements OnInit, AfterViewInit {\r\n @ViewChild(NumberInputerComponent, { static: true }) numberInputer: NumberInputerComponent;\r\n\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n\r\n maxSn: number = 9999;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n ngAfterViewInit(): void {\r\n (this.numberInputer.inputElement.nativeElement as any).focus();\r\n }\r\n\r\n initPopup(\r\n defaultSn: number,\r\n maxSn: number,\r\n ): void {\r\n this.numberInputer.updateNumber(defaultSn);\r\n if (maxSn > 1) {\r\n this.maxSn = maxSn;\r\n }\r\n }\r\n\r\n disableConfirmButton(): boolean {\r\n return this.numberInputer.currentNumber == null;\r\n }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n clickSubmit(): void {\r\n this.submit.emit(this.numberInputer.currentNumber);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
編輯序號
\r\n \r\n
\r\n
\r\n
\r\n
排列序號
\r\n \r\n
\r\n
\r\n
確定
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EditSnPopupComponent } from './edit-sn-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { NumberInputerModule } from '../number-inputer/number-inputer.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n NumberInputerModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [EditSnPopupComponent],\r\n exports: [EditSnPopupComponent]\r\n})\r\nexport class EditSnPopupModule { }\r\n","import { tap, take } from 'rxjs/operators';\r\nimport { timer, Subscription } from 'rxjs';\r\nimport { EasingFunction } from 'bezier-easing';\r\nimport * as BezierEasing from 'bezier-easing';\r\nimport { Guid } from '../guid';\r\n// import BezierEasing = require('bezier-easing');\r\n// import BezierEasing = require('bezier-easing');\r\n\r\nexport class ElementScroll {\r\n static scrollingElement: { [key: string]: Subscription } = {};\r\n static scrollTime: number = 200;\r\n static findParentScrollerElement(element: HTMLElement | Element | Node): HTMLElement {\r\n if (element == null\r\n || !(element instanceof HTMLElement)) {\r\n return null;\r\n }\r\n if (element.hasAttribute('autoscroll') || element.tagName === 'MAT-DIALOG-CONTAINER') {\r\n return element;\r\n }\r\n return ElementScroll.findParentScrollerElement(element.parentElement);\r\n }\r\n static intoViewStep(element: HTMLElement | Element, topOffset: number | string = 0): void {\r\n // 找出上層設定的捲動點\r\n const scrollContainerElement = ElementScroll.findParentScrollerElement(element);\r\n if (scrollContainerElement == null) {\r\n throw new Error('scroll element not found');\r\n }\r\n\r\n let scrollContainerId = scrollContainerElement.getAttribute('autoscroll');\r\n if (!scrollContainerId) {\r\n scrollContainerId = Guid.newGuid();\r\n scrollContainerElement.setAttribute('autoscroll', scrollContainerId);\r\n }\r\n\r\n if (ElementScroll.scrollingElement[scrollContainerId] != null) {\r\n ElementScroll.scrollingElement[scrollContainerId].unsubscribe();\r\n ElementScroll.scrollingElement[scrollContainerId] = null;\r\n delete ElementScroll.scrollingElement[scrollContainerId];\r\n }\r\n\r\n\r\n // 容器位置Rect\r\n const containerRect = scrollContainerElement.getBoundingClientRect();\r\n // 目標位置Rect\r\n // const targetRect = element.getBoundingClientRect();\r\n\r\n\r\n let _topOffset: number = parseFloat(topOffset.toString());\r\n if (topOffset.toString().indexOf('%') > -1) {\r\n _topOffset = _topOffset * 0.01;\r\n }\r\n\r\n if (0 < _topOffset && _topOffset < 1) {\r\n _topOffset = containerRect.height * _topOffset;\r\n }\r\n\r\n\r\n // 容器當前拉條位置\r\n // scrollContainerElement.scrollTop;\r\n\r\n // 目標top - 容器top = 要拉的距離\r\n // const scollLength = (targetRect.top - _topOffset) - containerRect.top;\r\n\r\n const fps: number = 1000 / 60; // 刷新頻率\r\n const time: number = ElementScroll.scrollTime; // 時間\r\n const stepCount: number = Math.ceil(time / fps); // 移動步數\r\n\r\n const easing: EasingFunction = BezierEasing(0.3, 0.5, 0, 1);\r\n const sourceScrollTop = scrollContainerElement.scrollTop;\r\n\r\n ElementScroll.scrollingElement[scrollContainerId] = timer(0, fps)\r\n .pipe(\r\n tap((i) => {\r\n const targetRect = element.getBoundingClientRect();\r\n const scollLength = (targetRect.top - _topOffset) - containerRect.top;\r\n\r\n // 計算當前移動距離\r\n const percent = (i / stepCount);\r\n const step = easing(percent) * scollLength;\r\n // 拉條目標高度\r\n const targetContainerScrollTop = scrollContainerElement.scrollTop + step;\r\n // console.log(i,\r\n // percent.toFixed(2),\r\n // step.toFixed(2) + ' / ' + scollLength,\r\n // scrollContainerElement.scrollTop,\r\n // targetContainerScrollTop\r\n // );\r\n scrollContainerElement.scrollTo({ top: targetContainerScrollTop });\r\n }),\r\n take(stepCount)\r\n ).subscribe({\r\n complete: () => {\r\n const targetRect = element.getBoundingClientRect();\r\n const scollLength = (targetRect.top - _topOffset) - containerRect.top;\r\n // console.log('finish,source ', sourceScrollTop\r\n // , '->', scrollContainerElement.scrollTop\r\n // , '->', (scrollContainerElement.scrollTop + scollLength));\r\n\r\n scrollContainerElement.scrollTo({ top: scrollContainerElement.scrollTop + scollLength });\r\n // scrollContainerElement.scrollTo({ top: sourceScrollTop + scollLength });\r\n ElementScroll.scrollingElement[scrollContainerId].unsubscribe();\r\n ElementScroll.scrollingElement[scrollContainerId] = null;\r\n delete ElementScroll.scrollingElement[scrollContainerId];\r\n }\r\n });\r\n }\r\n static intoView(element: HTMLElement | Element, topOffset: number | string = 0): void {\r\n // 找出上層設定的捲動點\r\n const scrollContainerElement = ElementScroll.findParentScrollerElement(element);\r\n if (scrollContainerElement == null) {\r\n throw new Error('scroll element not found');\r\n }\r\n\r\n let scrollContainerId = scrollContainerElement.getAttribute('autoscroll');\r\n if (!scrollContainerId) {\r\n scrollContainerId = Guid.newGuid();\r\n scrollContainerElement.setAttribute('autoscroll', scrollContainerId);\r\n }\r\n\r\n if (ElementScroll.scrollingElement[scrollContainerId] != null) {\r\n ElementScroll.scrollingElement[scrollContainerId].unsubscribe();\r\n ElementScroll.scrollingElement[scrollContainerId] = null;\r\n delete ElementScroll.scrollingElement[scrollContainerId];\r\n }\r\n\r\n\r\n // 容器位置Rect\r\n const containerRect = scrollContainerElement.getBoundingClientRect();\r\n // 目標位置Rect\r\n const targetRect = element.getBoundingClientRect();\r\n\r\n\r\n let _topOffset: number = parseFloat(topOffset.toString());\r\n if (topOffset.toString().indexOf('%') > -1) {\r\n _topOffset = _topOffset * 0.01;\r\n }\r\n\r\n if (0 < _topOffset && _topOffset < 1) {\r\n _topOffset = containerRect.height * _topOffset;\r\n }\r\n\r\n\r\n // 容器當前拉條位置\r\n // scrollContainerElement.scrollTop;\r\n\r\n // 目標top - 容器top = 要拉的距離\r\n const scollLength = (targetRect.top - _topOffset) - containerRect.top;\r\n\r\n const fps: number = 1000 / 60; // 刷新頻率\r\n const time: number = ElementScroll.scrollTime; // 時間\r\n const stepCount: number = Math.ceil(time / fps); // 移動步數\r\n\r\n const easing: EasingFunction = BezierEasing(0.3, 0.5, 0, 1);\r\n const sourceScrollTop = scrollContainerElement.scrollTop;\r\n\r\n ElementScroll.scrollingElement[scrollContainerId] = timer(0, fps)\r\n .pipe(\r\n tap((i) => {\r\n // const targetRect = element.getBoundingClientRect();\r\n // const scollLength = (targetRect.top - _topOffset) - containerRect.top;\r\n\r\n // 計算當前移動距離\r\n const percent = (i / stepCount);\r\n const step = easing(percent) * scollLength;\r\n // 拉條目標高度\r\n const targetContainerScrollTop = sourceScrollTop + step;\r\n // console.log(i,\r\n // percent.toFixed(2),\r\n // step.toFixed(2) + ' / ' + scollLength,\r\n // scrollContainerElement.scrollTop,\r\n // targetContainerScrollTop\r\n // );\r\n scrollContainerElement.scrollTo({ top: targetContainerScrollTop });\r\n }),\r\n take(stepCount)\r\n ).subscribe({\r\n complete: () => {\r\n scrollContainerElement.scrollTo({ top: sourceScrollTop + scollLength });\r\n ElementScroll.scrollingElement[scrollContainerId].unsubscribe();\r\n ElementScroll.scrollingElement[scrollContainerId] = null;\r\n delete ElementScroll.scrollingElement[scrollContainerId];\r\n }\r\n });\r\n }\r\n static toRange(range: Range, topOffset: number | string = 0): void {\r\n // 找出上層設定的捲動點\r\n let startElement = range.startContainer;\r\n if (!(startElement instanceof HTMLElement)) {\r\n startElement = startElement.parentElement;\r\n }\r\n\r\n const scrollContainerElement = ElementScroll.findParentScrollerElement(startElement);\r\n if (scrollContainerElement == null) {\r\n throw new Error('scroll element not found');\r\n }\r\n\r\n let scrollContainerId = scrollContainerElement.getAttribute('autoscroll');\r\n if (!scrollContainerId) {\r\n scrollContainerId = Guid.newGuid();\r\n scrollContainerElement.setAttribute('autoscroll', scrollContainerId);\r\n }\r\n\r\n if (ElementScroll.scrollingElement[scrollContainerId] != null) {\r\n ElementScroll.scrollingElement[scrollContainerId].unsubscribe();\r\n ElementScroll.scrollingElement[scrollContainerId] = null;\r\n delete ElementScroll.scrollingElement[scrollContainerId];\r\n }\r\n\r\n\r\n // 容器位置Rect\r\n const containerRect = scrollContainerElement.getBoundingClientRect();\r\n // 目標位置Rect\r\n const targetRect = range.getBoundingClientRect();\r\n\r\n\r\n let _topOffset: number = parseFloat(topOffset.toString());\r\n if (topOffset.toString().indexOf('%') > -1) {\r\n _topOffset = _topOffset * 0.01;\r\n }\r\n\r\n if (0 < _topOffset && _topOffset < 1) {\r\n _topOffset = containerRect.height * _topOffset;\r\n }\r\n\r\n\r\n // 容器當前拉條位置\r\n // scrollContainerElement.scrollTop;\r\n\r\n // 目標top - 容器top = 要拉的距離\r\n const scollLength = (targetRect.top - _topOffset) - containerRect.top;\r\n\r\n const fps: number = 1000 / 60; // 刷新頻率\r\n const time: number = ElementScroll.scrollTime; // 時間\r\n const stepCount: number = Math.ceil(time / fps); // 移動步數\r\n\r\n const easing: EasingFunction = BezierEasing(0.3, 0.5, 0, 1);\r\n const sourceScrollTop = scrollContainerElement.scrollTop;\r\n\r\n ElementScroll.scrollingElement[scrollContainerId] = timer(0, fps)\r\n .pipe(\r\n tap((i) => {\r\n\r\n // 計算當前移動距離\r\n const percent = (i / stepCount);\r\n const step = easing(percent) * scollLength;\r\n // 拉條目標高度\r\n const targetContainerScrollTop = sourceScrollTop + step;\r\n scrollContainerElement.scrollTo({ top: targetContainerScrollTop });\r\n }),\r\n take(stepCount)\r\n ).subscribe({\r\n complete: () => {\r\n scrollContainerElement.scrollTo({ top: sourceScrollTop + scollLength });\r\n ElementScroll.scrollingElement[scrollContainerId].unsubscribe();\r\n ElementScroll.scrollingElement[scrollContainerId] = null;\r\n delete ElementScroll.scrollingElement[scrollContainerId];\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-email-setting-popup',\r\n templateUrl: './email-setting-popup.component.html',\r\n styleUrls: ['./email-setting-popup.component.scss']\r\n})\r\nexport class EmailSettingPopupComponent implements OnInit {\r\n\r\n confirm$: Subject = new Subject();\r\n custom_email: string;\r\n link_email: string;\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n close(): void {\r\n this.matDialogRef.close();\r\n }\r\n confirm(): void {\r\n this.confirm$.next();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
信箱設定
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n 修改綁定信箱 \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EmailSettingPopupComponent } from './email-setting-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [EmailSettingPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ],\r\n exports: [EmailSettingPopupComponent]\r\n})\r\nexport class EmailSettingPopupModule { }\r\n","export class ExtNumber {\r\n static isNumberAndBiggerThen(content: any, num: number): boolean {\r\n const cn = this.getNumber(content);\r\n if (cn == null) { return false; }\r\n return cn > num;\r\n }\r\n static getNumber(content: any): number {\r\n if (content == null) {\r\n return null;\r\n }\r\n const contentText = content.toString();\r\n if (contentText.length === 0) {\r\n return null;\r\n }\r\n if (isNaN(contentText)) {\r\n return null;\r\n }\r\n const result = parseInt(contentText, 10);\r\n\r\n return result;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-facebook-id-setting-popup',\r\n templateUrl: './facebook-id-setting-popup.component.html',\r\n styleUrls: ['./facebook-id-setting-popup.component.scss']\r\n})\r\nexport class FacebookIdSettingPopupComponent implements OnInit {\r\n\r\n confirm$: Subject = new Subject();\r\n text: string = '';\r\n\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n close(): void {\r\n this.matDialogRef.close();\r\n }\r\n confirm(): void {\r\n this.confirm$.next(this.text);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
Facebook 設定
\r\n
\r\n
\r\n
\r\n
您的用戶名稱和您的帳號網址相同:
\r\n
\r\n
\r\n
\r\n
facebook.com/{{text}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FacebookIdSettingPopupComponent } from './facebook-id-setting-popup.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [FacebookIdSettingPopupComponent],\r\n imports: [\r\n CommonModule,\r\n MatDialogModule,\r\n FormsModule,\r\n ],\r\n exports: [FacebookIdSettingPopupComponent]\r\n})\r\nexport class FacebookIdSettingPopupModule { }\r\n","
\r\n
\r\n
\r\n
\r\n
會議參與篩選
\r\n
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
未參加
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{member.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
已參加
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{member.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
送出
\r\n
清除
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { TeamMemberStorage } from '../team/team-member-storage';\r\n\r\n@Component({\r\n selector: 'app-filter-meet-member-popup',\r\n templateUrl: './filter-meet-member-popup.component.html',\r\n styleUrls: ['./filter-meet-member-popup.component.scss']\r\n})\r\nexport class FilterMeetMemberPopupComponent implements OnInit {\r\n @ViewChild('memberListLeft', { static: true }) memberListLeftElement: ElementRef;\r\n @ViewChild('memberListRight', { static: true }) memberListRightElement: ElementRef;\r\n memberList: TeamMemberStorage[] = [];\r\n selectedNotJoinMember: { [key: string]: boolean } = {};\r\n selectedJoinMember: { [key: string]: boolean } = {};\r\n\r\n loadingMemberList: boolean = false;\r\n\r\n hasChange: boolean = false;\r\n scrollLockLeft: boolean = false;\r\n scrollLockRight: boolean = false;\r\n\r\n hoveredMember: TeamMemberStorage;\r\n\r\n onSubmit: () => void;\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.hasChange = false;\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n setMemberNotJoinToFilter(member: TeamMemberStorage): void {\r\n this.selectedNotJoinMember[member.member_id] = !this.selectedNotJoinMember[member.member_id];\r\n if (this.selectedJoinMember[member.member_id]) {\r\n this.selectedJoinMember[member.member_id] = false;\r\n }\r\n this.hasChange = true;\r\n }\r\n setMemberJoinToFilter(member: TeamMemberStorage): void {\r\n this.selectedJoinMember[member.member_id] = !this.selectedJoinMember[member.member_id];\r\n if (this.selectedNotJoinMember[member.member_id]) {\r\n this.selectedNotJoinMember[member.member_id] = false;\r\n }\r\n this.hasChange = true;\r\n }\r\n\r\n syncScrollTopToRight($event: Event): void {\r\n if (this.scrollLockRight) { return; }\r\n this.memberListRightElement.nativeElement.scrollTop = this.memberListLeftElement.nativeElement.scrollTop;\r\n }\r\n syncScrollTopToLeft($event: Event): void {\r\n if (this.scrollLockLeft) { return; }\r\n this.memberListLeftElement.nativeElement.scrollTop = this.memberListRightElement.nativeElement.scrollTop;\r\n }\r\n\r\n cancel(): void {\r\n this.closePopup();\r\n }\r\n submit(): void {\r\n if (this.onSubmit) {\r\n this.onSubmit();\r\n }\r\n }\r\n clearSelectedMember(): void {\r\n if (Object.values(this.selectedNotJoinMember).filter(v => v).length > 0\r\n || Object.values(this.selectedJoinMember).filter(v => v).length > 0) {\r\n this.hasChange = true;\r\n }\r\n this.selectedNotJoinMember = {};\r\n this.selectedJoinMember = {};\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilterMeetMemberPopupComponent } from './filter-meet-member-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [FilterMeetMemberPopupComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [FilterMeetMemberPopupComponent]\r\n})\r\nexport class FilterMeetMemberPopupModule { }\r\n","import { Component, OnInit, Output, EventEmitter, Input, HostListener, OnDestroy, ViewChild } from '@angular/core';\r\nimport { FilterPopupService, FilterPopupTabType, FilterPopupResult } from './filter-popup.service';\r\n\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { Category } from '../category/category';\r\nimport { Subcategory } from '../category/subcategory';\r\nimport { ListBlockCategoryComponent } from './list-block-category/list-block-category.component';\r\nimport { ListBlockSubcategoryComponent } from './list-block-subcategory/list-block-subcategory.component';\r\n\r\n@Component({\r\n selector: 'app-filter-popup',\r\n templateUrl: './filter-popup.component.html',\r\n styleUrls: ['./filter-popup.component.scss'],\r\n providers: [FilterPopupService],\r\n})\r\nexport class FilterPopupComponent extends BasePopup implements OnInit, OnDestroy {\r\n constructor(\r\n filterPopupService: FilterPopupService,\r\n private popupManagerService: PopupManagerService\r\n ) {\r\n super();\r\n\r\n this.filterPopupService = filterPopupService;\r\n }\r\n\r\n // 選擇的頁面種類\r\n get selectedType(): FilterPopupTabType { return this.filterPopupService.selectedType; }\r\n\r\n // 右側,篩選條件\r\n get selectedCategory(): Category { return this.filterPopupService.selectedCategory; } // 目前條件區,已選擇類別\r\n get selectedSubcategory(): Subcategory { return this.filterPopupService.selectedSubcategory; } // 目前條件區,已選擇項目\r\n // filterCondition: FilterCondition; // 裁判資料,確定選擇的過濾條件(類別、項目)\r\n\r\n filterPopupService: FilterPopupService;\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n @ViewChild('listBlockCategory') listBlockCategory: ListBlockCategoryComponent;\r\n @ViewChild('listblockSubcategory') listblockSubcategory: ListBlockSubcategoryComponent;\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n\r\n\r\n // 彈窗開關、分頁切換------------------------------------------------------------------------\r\n\r\n // 彈窗開關、切換分頁\r\n // ------------------------------------------------------------------------\r\n clickShowPopup: boolean = false;\r\n filterPopupTabType: any = FilterPopupTabType;\r\n\r\n // 設定啟用的分頁\r\n enableCategory: boolean = true;\r\n enableSubcategory: boolean = true;\r\n enableTeamMember: boolean = false;\r\n enableJoinDiscuss: boolean = false;\r\n\r\n ngOnInit() {\r\n // 選擇類別\r\n this.subscriptions.selectedCategory = this.filterPopupService.selectedCategory$.subscribe(r => {\r\n // 更新項目清單\r\n console.log('filter popup service selected category');\r\n\r\n // this.selectedCategory = r;\r\n // this.reverseSelectCategoryToSubcategory();\r\n });\r\n // 選擇項目\r\n this.subscriptions.selectedSubcategory = this.filterPopupService.selectedSubcategory$.subscribe(r => {\r\n // 檢查所屬類別\r\n // 設定選擇的類別\r\n\r\n // 更新項目清單\r\n\r\n\r\n // this.selectedSubcategory = r;\r\n // this.reverseSelectSubCategoryToCategory();\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n\r\n initPopup(\r\n type: FilterPopupTabType,\r\n selectedCategory: Category,\r\n selectedSubcategory: Subcategory,\r\n get_categoryList: () => Category[],\r\n get_subcategoryList: () => Subcategory[],\r\n pullCategoryListObserver: Observable,\r\n pullSubcategoryListObserver: Observable\r\n ): void {\r\n\r\n this.filterPopupService.selectedType = type;\r\n this.filterPopupService.sourceSelectedCategory = selectedCategory;\r\n this.filterPopupService.sourceSelectedSubcategory = selectedSubcategory;\r\n this.filterPopupService.selectedCategory = selectedCategory;\r\n this.filterPopupService.selectedSubcategory = selectedSubcategory;\r\n this.filterPopupService.get_categoryList = get_categoryList;\r\n this.filterPopupService.get_subcategoryList = get_subcategoryList;\r\n this.filterPopupService.pullCategoryListObserver = pullCategoryListObserver;\r\n this.filterPopupService.pullSubcategoryListObserver = pullSubcategoryListObserver;\r\n\r\n this.filterPopupService.updateAllList();\r\n\r\n\r\n // this.filterCondition = filterCondition;\r\n // this.selectType(type);\r\n\r\n // this.selectedCategory = this.filterCondition.category;\r\n // this.selectedSubcategory = this.filterCondition.subcategory;\r\n\r\n // this.selectCategory(this.filterCondition.category);\r\n // this.selectSubcategory(this.filterCondition.subcategory);\r\n\r\n // this.clickShowPopup = true;\r\n }\r\n closePopup(): void {\r\n this.clickShowPopup = false;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n // 檢查按下的按鍵\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n if (ev.keyCode === 27 && !this.popupManagerService.closeLast()) {\r\n this.closePopup();\r\n }\r\n }\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) closeMenu(ev: MouseEvent) {\r\n if (this.checkCursorClickClassName(ev, 'filter-popup')\r\n && this.checkCursorClickClassName(ev, 'mask-full-screen')) {\r\n this.closePopup();\r\n }\r\n }\r\n\r\n\r\n // 選擇分頁\r\n selectType(type: FilterPopupTabType): void {\r\n this.filterPopupService.selectedType = type;\r\n }\r\n\r\n // icon轉換style\r\n getCategoryIconStyle(category: Category): any {\r\n return Category.getIconStyle(category);\r\n }\r\n getSubcategoryIconStyle(subcategory: Subcategory): any {\r\n return Subcategory.getIconStyle(subcategory);\r\n }\r\n\r\n // 檢查是否使用者類別\r\n isUserCategory(category: Category): boolean {\r\n const uc = this.filterPopupService.categoryList.find(v => v.text === category.text);\r\n return uc != null;\r\n }\r\n // 檢查是否使用者項目\r\n isUserSubcategory(subcategory: Subcategory): boolean {\r\n const usc = this.filterPopupService.subcategoryList.find(v => v.category_text === subcategory.category_text && v.text === subcategory.text);\r\n return usc != null;\r\n }\r\n\r\n // 清除重填\r\n resetCategory(): void {\r\n this.selectCategory(Category.allCategory);\r\n this.rehandlePageChanger();\r\n }\r\n resetSubcategory(): void {\r\n // 設定,選擇項目 = 全部項目\r\n this.selectSubcategory(Subcategory.allSubcategory);\r\n this.rehandlePageChanger();\r\n }\r\n resetAll(): void {\r\n this.filterPopupService.selectedCategory = Category.allCategory;\r\n this.filterPopupService.selectedSubcategory = Subcategory.allSubcategory;\r\n this.filterPopupService.updateAllList();\r\n this.rehandlePageChanger();\r\n\r\n // this.resetCategory();\r\n // this.resetSubcategory();\r\n // this.filterPopupService.resetCategory();\r\n // this.filterPopupService.resetSubcategory();\r\n }\r\n rehandlePageChanger(): void {\r\n if (this.listBlockCategory) {\r\n this.listBlockCategory.pageChange.currentIndex = 1;\r\n this.listBlockCategory.pageChange.update(\r\n this.filterPopupService.categorySearchKeyword ?\r\n this.filterPopupService.categoryList.length :\r\n this.filterPopupService.sourceCategoryList.length,\r\n this.filterPopupService.categoryList.length,\r\n this.listBlockCategory.perPageItemAmount\r\n );\r\n } else if (this.listblockSubcategory) {\r\n this.listblockSubcategory.pageChange.currentIndex = 1;\r\n let displayCount: number = 0;\r\n if (this.filterPopupService.subcategorySearchKeyword) {\r\n displayCount = this.filterPopupService.subcategoryList.length;\r\n } else if (this.filterPopupService.selectedSubcategory) {\r\n displayCount = this.filterPopupService.subcategoryList.length - 2;\r\n } else {\r\n displayCount = this.filterPopupService.sourceSubcategoryList.length;\r\n }\r\n this.listblockSubcategory.pageChange.update(displayCount,\r\n this.filterPopupService.subcategoryList.length,\r\n this.listblockSubcategory.perPageItemAmount\r\n );\r\n }\r\n }\r\n\r\n\r\n // 選擇類別、項目\r\n selectCategory(category: Category): void {\r\n this.filterPopupService.selectCategory(category);\r\n }\r\n selectSubcategory(subcategory: Subcategory): void {\r\n this.filterPopupService.selectSubcategory(subcategory);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // isSubcategoryUnderCategory(category: Category, subcategory: Subcategory): boolean {\r\n // return subcategory.category === category.text;\r\n // }\r\n // reverseSelectCategoryToSubcategory(): void {\r\n // if (this.selectedCategory.sn < 0) {\r\n // this.selectSubcategory(Subcategory.allSubcategory);\r\n // return;\r\n // }\r\n\r\n // if (!this.isSubcategoryUnderCategory(this.selectedCategory, this.selectedSubcategory)) {\r\n // this.selectSubcategory(Subcategory.allSubcategory);\r\n // }\r\n // }\r\n // reverseSelectSubCategoryToCategory(): void {\r\n // if (this.isSubcategoryUnderCategory(this.selectedCategory, this.selectedSubcategory)) {\r\n // return;\r\n // }\r\n\r\n // const category = this.filterPopupService.categoryList.list.find(a => a.text === this.selectedSubcategory.category);\r\n // if (category) {\r\n // this.selectCategory(category);\r\n // }\r\n // }\r\n // 篩選條件\r\n // ------------------------------------------------------------------------\r\n\r\n // 在類別清單中有被選擇的新類別\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // 送出查詢\r\n disableSubmit(): boolean {\r\n return this.selectedCategory === this.filterPopupService.sourceSelectedCategory\r\n && this.selectedSubcategory === this.filterPopupService.sourceSelectedSubcategory;\r\n // return (this.filterCondition.category === this.selectedCategory)\r\n // && (this.filterCondition.subcategory === this.selectedSubcategory);\r\n\r\n // if (this.importFilterCondition.category != this.selectedCategory) {\r\n // return false;\r\n // }\r\n // if (this.importFilterCondition.subcategory != this.selectedSubcategory) {\r\n // return false;\r\n // }\r\n // return true;\r\n }\r\n clickSubmit(): void {\r\n const result = new FilterPopupResult();\r\n result.category = this.selectedCategory;\r\n result.subcategory = this.selectedSubcategory;\r\n this.submit.emit(result);\r\n\r\n // 由外部呼叫來源決定彈窗關閉時間\r\n }\r\n\r\n\r\n // initPopup(type: FilterPopupTabType,\r\n // filterCondition: FilterCondition): void {\r\n\r\n // this.filterCondition = filterCondition;\r\n // this.selectType(type);\r\n\r\n // this.selectedCategory = this.filterCondition.category;\r\n // this.selectedSubcategory = this.filterCondition.subcategory;\r\n\r\n // this.selectCategory(this.filterCondition.category);\r\n // this.selectSubcategory(this.filterCondition.subcategory);\r\n\r\n // this.clickShowPopup = true;\r\n // }\r\n // ------------------------------------------------------------------------\r\n\r\n\r\n\r\n\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n
篩選工具
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
類別
\r\n
項目
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
目前條件
\r\n
\r\n
\r\n
歸納體系
\r\n
\r\n
\r\n
\r\n
{{selectedCategory.text}}
\r\n
\r\n
清除
\r\n
\r\n
\r\n
\r\n
\r\n
{{selectedSubcategory.text}}
\r\n
\r\n
清除
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
送出查詢\r\n
\r\n
全部清除
\r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n\r\nimport { FilterPopupComponent } from './filter-popup.component';\r\n\r\nimport { ListBlockCategoryModule } from \"./list-block-category/list-block-category.module\";\r\nimport { ListBlockSubcategoryModule } from \"./list-block-subcategory/list-block-subcategory.module\";\r\nimport { ListBlockTeamMemberModule } from \"./list-block-team-member/list-block-team-member.module\";\r\nimport { ListBlockJoinDiscussModule } from \"./list-block-join-discuss/list-block-join-discuss.module\";\r\n\r\nimport { MaskFullScreenModule } from \"../mask-full-screen/mask-full-screen.module\";\r\nimport { FilterPopupService } from \"./filter-popup.service\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ListBlockCategoryModule,\r\n ListBlockSubcategoryModule,\r\n ListBlockTeamMemberModule,\r\n ListBlockJoinDiscussModule,\r\n MaskFullScreenModule,\r\n FramePopupCloseModule,\r\n ],\r\n // providers: [\r\n // FilterPopupService\r\n // ],\r\n declarations: [\r\n FilterPopupComponent\r\n ],\r\n exports: [\r\n FilterPopupComponent,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ListBlockCategoryModule,\r\n ListBlockSubcategoryModule,\r\n ListBlockTeamMemberModule,\r\n ListBlockJoinDiscussModule,\r\n MaskFullScreenModule\r\n ]\r\n})\r\nexport class FilterPopupModule { }\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Observable, Subject, Subscription, empty } from 'rxjs';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { IEditCategoryService } from '../edit-category-popup/i-edit-category-service';\r\nimport { CategoryOrderRequestData } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/category-order-request-data';\r\nimport { SubcategoryOrderRequestData } from '../edit-category-popup/subcategory-order-request-data';\r\nimport { Category } from '../category/category';\r\nimport { Subcategory } from '../category/subcategory';\r\n\r\nexport enum FilterPopupTabType {\r\n Category = 0,\r\n Subcategory = 1,\r\n JoinDiscuss = 2,\r\n TeamMember = 3,\r\n}\r\n\r\n// export class Category {\r\n// static defaultIcon: string = 'category/9.png';\r\n// static allCategory: Category = Category.NewCategory(-2, 'icon/arrow_refresh.png', '全部類別');\r\n// static unCategory: Category = Category.NewCategory(-1, 'icon/symbol_question.png', '未分類');\r\n// // Serializable\r\n// // .extendObjectFromResponseObject(\r\n// // new Category(),\r\n// // { sn: -2, icon: 'icon/arrow_refresh.png', text: '全部類別' }\r\n// // );\r\n// // static unCategory: Category = Serializable\r\n// // .extendObjectFromResponseObject(\r\n// // new Category(),\r\n// // { sn: -1, icon: 'icon/symbol_question.png', text: '未分類' }\r\n// // );\r\n// static oldIconMapToNewIcon = {\r\n// 'pathicon/pathicon_type01_01.png': '1.png',\r\n// 'pathicon/pathicon_type01_02.png': '2.png',\r\n// 'pathicon/pathicon_type01_03.png': '3.png',\r\n// 'pathicon/pathicon_type01_04.png': '4.png',\r\n// 'pathicon/pathicon_type01_05.png': '5.png',\r\n// 'pathicon/pathicon_type01_06.png': '6.png',\r\n// 'pathicon/pathicon_type01_07.png': '7.png',\r\n// 'pathicon/pathicon_type01_08.png': '8.png',\r\n// 'pathicon/pathicon_type01_09.png': '9.png',\r\n// 'pathicon/pathicon_type01_10.png': '10.png',\r\n// 'pathicon/pathicon_type03_01.png': '11.png',\r\n// 'pathicon/pathicon_type03_02.png': '12.png',\r\n// 'pathicon/pathicon_type03_03.png': '13.png',\r\n// 'pathicon/pathicon_type03_04.png': '14.png',\r\n// 'pathicon/pathicon_type03_05.png': '15.png',\r\n// 'pathicon/pathicon_type03_06.png': '16.png',\r\n// 'pathicon/pathicon_type03_07.png': '17.png',\r\n// 'pathicon/pathicon_type03_08.png': '18.png',\r\n// 'pathicon/pathicon_type03_09.png': '19.png',\r\n// 'pathicon/pathicon_type03_10.png': '20.png',\r\n// //\r\n// 'pathicon/pathicon_type02_01.png': 'b7.png',\r\n// 'pathicon/pathicon_type02_02.png': 'b1.png',\r\n// 'pathicon/pathicon_type02_03.png': 'b2.png',\r\n// 'pathicon/pathicon_type02_04.png': 'b3.png',\r\n// 'pathicon/pathicon_type02_05.png': 'b5.png',\r\n// 'pathicon/pathicon_type02_06.png': 'b6.png',\r\n// 'pathicon/pathicon_type02_07.png': 'b8.png',\r\n// 'pathicon/pathicon_type02_08.png': 'b9.png',\r\n// };\r\n\r\n// // virtual_index: number;\r\n// sn: number;\r\n// icon: string;\r\n// text: string;\r\n// reference_count: number;\r\n\r\n// get key(): string { return this.text; }\r\n\r\n// static NewCategory(sn: number, icon: string, text: string): Category {\r\n// const c = new Category();\r\n// c.sn = sn;\r\n// c.icon = icon;\r\n// c.text = text;\r\n// return c;\r\n// }\r\n// static getIconStyle(item: Category): any {\r\n// let _icon = 'icon/symbol_question.png';\r\n// if (item != null) {\r\n// if (item.icon != null) {\r\n// if (Category.oldIconMapToNewIcon[item.icon]) {\r\n// _icon = 'category/' + Category.oldIconMapToNewIcon[item.icon];\r\n// } else if (item.icon.match(/^(pathicon\\/|icon\\/)/)) {\r\n// _icon = item.icon;\r\n// } else if (item.icon.match(/^category\\//)) {\r\n// _icon = item.icon;\r\n// } else {\r\n// _icon = 'category/' + item.icon;\r\n// }\r\n// } else {\r\n// _icon = Category.defaultIcon;\r\n// }\r\n// }\r\n\r\n// // let _icon = item != null ? item.icon : 'icon/symbol_question.png';\r\n// // _icon = _icon != null ? _icon : Category.defaultIcon;\r\n\r\n// return {\r\n// 'backgroundImage': 'url(/assets/img/' + _icon + ')'\r\n// };\r\n// }\r\n// static compare(a: Category, b: Category): boolean {\r\n// const _a = a || Category.unCategory;\r\n// const _b = b || Category.unCategory;\r\n// return (_a.sn === _b.sn && _a.text === _b.text);\r\n\r\n// // if (a == null || b == null) { return false; }\r\n\r\n// }\r\n// }\r\n// export class CategoryList {\r\n// edit_time: Date;\r\n// count: number = 0;\r\n// list: Category[] = [];\r\n\r\n// constructor() { }\r\n\r\n// static getCategoryListOrderRequestData(list: Category[]): CategoryOrderRequestData[] {\r\n// return list.map(v => ({ category: v.text, sn: v.sn }));\r\n// }\r\n// static reindexCategoryListSn(list: Category[]): void {\r\n// list.forEach((v, i) => {\r\n// v.sn = i + 1;\r\n// });\r\n// }\r\n// }\r\n// export class Subcategory {\r\n\r\n// static defaultIcon: string = 'subcategory/9.png';\r\n// static allSubcategory: Subcategory = Subcategory.NewSubcategory(-2, 'icon/arrow_refresh.png', '全部項目', '');\r\n// // Serializable\r\n// // .extendObjectFromResponseObject(\r\n// // new Subcategory(),\r\n// // { row_index: -2, sn: -2, icon: 'icon/arrow_refresh.png', text: '全部項目', category: '' }\r\n// // );\r\n// static unSubcategory: Subcategory = Subcategory.NewSubcategory(-1, 'icon/symbol_question.png', '未分項', '');\r\n// // Serializable\r\n// // .extendObjectFromResponseObject(\r\n// // new Subcategory(),\r\n// // { row_index: -1, sn: -1, icon: 'icon/symbol_question.png', text: '未分項', category: '' }\r\n// // );\r\n\r\n// static oldIconMapToNewIcon = {\r\n// 'subcategory/subcategory_blue.png': '1.png',\r\n// 'subcategory/subcategory_red.png': '2.png',\r\n// 'subcategory/subcategory_orange.png': '3.png',\r\n// 'subcategory/subcategory_yellow.png': '4.png',\r\n// 'subcategory/subcategory_green.png': '5.png',\r\n// 'subcategory/subcategory_cyan_blue.png': '6.png',\r\n// 'subcategory/subcategory_purple.png': '8.png',\r\n// };\r\n// // virtual_index: number;\r\n// // row_index: number;\r\n// sn: number;\r\n// icon: string;\r\n// text: string;\r\n// category: string;\r\n// reference_count: number;\r\n\r\n// get key(): string { return this.category + '-' + this.text; }\r\n\r\n// static NewSubcategory(\r\n// // row_index: number,\r\n// sn: number,\r\n// icon: string,\r\n// text: string,\r\n// category: string): Subcategory {\r\n// const s = new Subcategory();\r\n// // s.row_index = row_index;\r\n// s.sn = sn;\r\n// s.icon = icon;\r\n// s.text = text;\r\n// s.category = category;\r\n// return s;\r\n// }\r\n\r\n// static getIconStyle(item: Subcategory): any {\r\n// // let _icon = item != null ? item.icon : 'icon/symbol_question.png';\r\n// // _icon = _icon != null ? _icon : Subcategory.defaultIcon;\r\n// let _icon = 'icon/symbol_question.png';\r\n\r\n// if (item != null) {\r\n// if (item.icon != null) {\r\n// if (item.icon.match(/^(subcategory\\/|icon\\/)/)) {\r\n// _icon = item.icon;\r\n// } else {\r\n// _icon = 'subcategory/' + item.icon;\r\n// }\r\n// } else {\r\n// _icon = Subcategory.defaultIcon;\r\n// }\r\n// }\r\n\r\n\r\n// return {\r\n// 'backgroundImage': 'url(/assets/img/' + _icon + ')'\r\n// };\r\n// }\r\n\r\n// static OrderSubcategoryList(categoryList: Category[], subcategoryList: Subcategory[]) {\r\n// subcategoryList.sort((a, b) => {\r\n// if (a.category == null) {\r\n// return 1;\r\n// }\r\n// if (b.category == null) {\r\n// return -1;\r\n// }\r\n// const aCategoryIndex = categoryList.findIndex(v => v.text === a.category);\r\n// const bCategoryIndex = categoryList.findIndex(v => v.text === b.category);\r\n\r\n// if (aCategoryIndex < bCategoryIndex) {\r\n// return -1;\r\n// } else if (aCategoryIndex > bCategoryIndex) {\r\n// return 1;\r\n// }\r\n\r\n// return a.sn - b.sn;\r\n// });\r\n// }\r\n// static compare(a: Subcategory, b: Subcategory) {\r\n// const _a = a || Subcategory.unSubcategory;\r\n// const _b = b || Subcategory.unSubcategory;\r\n\r\n// const _aKey = _a.category + _a.sn + _a.text;\r\n// const _bKey = _b.category + _b.sn + _b.text;\r\n\r\n// return _aKey === _bKey;\r\n// }\r\n// }\r\n// export class SubcategoryList {\r\n// edit_time: Date;\r\n// count: number = 0;\r\n// list: Subcategory[] = [];\r\n\r\n// static getSubcategoryListOrderRequestData(list: Subcategory[]): SubcategoryOrderRequestData[] {\r\n// return list.map(v => ({ category: v.category, subcategory: v.text, sn: v.sn }));\r\n// }\r\n// static reindexSubcategoryListSn(list: Subcategory[]): void {\r\n// const categoryDict: { [key: string]: number } = {};\r\n\r\n// list.forEach((v, i) => {\r\n// if (v.category == null) {\r\n// return;\r\n// }\r\n\r\n// if (!categoryDict[v.category]) {\r\n// categoryDict[v.category] = 0;\r\n// }\r\n// categoryDict[v.category]++;\r\n// v.sn = categoryDict[v.category];\r\n// });\r\n// }\r\n// }\r\n\r\n\r\nexport enum FilterPopupType {\r\n Judgment = 0,\r\n JudicialInterpret = 1,\r\n}\r\n\r\nexport class FilterPopupResult {\r\n category: Category;\r\n subcategory: Subcategory;\r\n}\r\n\r\n\r\n/**\r\n * 儲存彈窗資料,\r\n * 當前已選擇、原本選擇的過濾條件\r\n */\r\n@Injectable()\r\nexport class FilterPopupService {\r\n\r\n // 選擇的頁面種類\r\n selectedType: FilterPopupTabType = FilterPopupTabType.Category;\r\n\r\n // 原始資料\r\n sourceSelectedCategory: Category;\r\n sourceSelectedSubcategory: Subcategory;\r\n get_categoryList: () => Category[];\r\n get sourceCategoryList(): Category[] { return this.get_categoryList(); }\r\n get_subcategoryList: () => Subcategory[];\r\n get sourceSubcategoryList(): Subcategory[] { return this.get_subcategoryList(); }\r\n\r\n\r\n // 右側,篩選條件\r\n selectedCategory: Category; // 目前條件區,已選擇類別\r\n selectedSubcategory: Subcategory; // 目前條件區,已選擇項目\r\n\r\n // 類別清單\r\n categoryList: Category[] = [];\r\n // 項目清單\r\n subcategoryList: Subcategory[] = [];\r\n\r\n\r\n // 從S刷新類別項目清單 (source list)\r\n pullCategoryListObserver: Observable;\r\n pullSubcategoryListObserver: Observable;\r\n\r\n\r\n // 類別項目清單更新\r\n categoryList$: Subject = new Subject();\r\n subcategoryList$: Subject = new Subject();\r\n\r\n // 選擇的類別項目更新\r\n selectedCategory$: Subject = new Subject();\r\n selectedSubcategory$: Subject = new Subject();\r\n\r\n // 搜尋關鍵字\r\n categorySearchKeyword: string = '';\r\n subcategorySearchKeyword: string = '';\r\n\r\n\r\n\r\n // private inputService: IEditCategoryService;\r\n\r\n // categoryList$: Subject;\r\n // subcategoryList$: Subject;\r\n\r\n // // pullCategoryListFunc: () => Subscription;\r\n // // pullSubcategoryListFunc: () => Subscription;\r\n\r\n // selectedCategory: Category;\r\n // selectedSubcategory: Subcategory;\r\n\r\n // selectedCategory$: Subject = new Subject();\r\n // selectedSubcategory$: Subject = new Subject();\r\n\r\n\r\n // inited: boolean = false;\r\n\r\n // resetCategory$EV: Subject = new Subject();\r\n // resetSubcategory$EV: Subject = new Subject();\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n\r\n constructor() {\r\n // this.selectedCategory = Category.allCategory;\r\n // this.selectedSubcategory = Subcategory.allSubcategory;\r\n\r\n // this.selectedCategory$.subscribe(r => {\r\n // this.selectedCategory = r;\r\n // });\r\n // this.selectedSubcategory$.subscribe(r => {\r\n // this.selectedSubcategory = r;\r\n // });\r\n }\r\n\r\n // init(\r\n // editCategoryService: IEditCategoryService\r\n // // categoryList: CategoryList,\r\n // // subcategoryList: SubcategoryList,\r\n // // categoryList$: Subject,\r\n // // subcategoryList$: Subject,\r\n // // pullCategoryList: () => Subscription,\r\n // // pullSubcategoryList: () => Subscription\r\n // ): void {\r\n // this.inputService = editCategoryService;\r\n\r\n // this.categoryList$ = this.inputService.categoryList$;\r\n // this.subcategoryList$ = this.inputService.subcategoryList$;\r\n\r\n // this.categoryList = this.inputService.categoryList;\r\n // this.subcategoryList = this.inputService.subcategoryList;\r\n\r\n // this.categoryList$.subscribe(r => {\r\n // this.categoryList = r;\r\n // });\r\n // this.subcategoryList$.subscribe(r => {\r\n // this.subcategoryList = r;\r\n // });\r\n\r\n // this.inited = true;\r\n // }\r\n\r\n\r\n // 選擇類別\r\n selectCategory(category: Category): void {\r\n // 設定選擇的類別\r\n this.selectedCategory = category;\r\n // 設定選擇的項目 = 全部項目\r\n this.selectedSubcategory = Subcategory.allSubcategory;\r\n\r\n // 更新清單\r\n this.updateAllList();\r\n }\r\n\r\n // 選擇項目\r\n selectSubcategory(subcategory: Subcategory): void {\r\n // 設定選擇的項目\r\n this.selectedSubcategory = subcategory;\r\n\r\n // 設定選擇的類別,全部、未分類,不影響原本選擇\r\n if (subcategory !== Subcategory.allSubcategory\r\n && subcategory !== Subcategory.unSubcategory) {\r\n this.selectedCategory = this.sourceCategoryList.find(v => v.text === subcategory.category_text);\r\n }\r\n\r\n // 更新清單\r\n this.updateAllList();\r\n }\r\n\r\n /** 更新全部清單 */\r\n updateAllList(): void {\r\n\r\n // 設定類別清單\r\n this.categoryList = [];\r\n if (this.categorySearchKeyword) {\r\n // 有關鍵字搜尋\r\n this.categoryList.push(...this.sourceCategoryList.filter(v => v.text.indexOf(this.categorySearchKeyword) > -1));\r\n } else {\r\n // 無關鍵字搜尋\r\n this.categoryList.push(Category.allCategory);\r\n this.categoryList.push(Category.unCategory);\r\n this.categoryList.push(...this.sourceCategoryList);\r\n }\r\n\r\n // 設定項目清單\r\n let sourceSubcategoryList = this.sourceSubcategoryList;\r\n if (this.selectedCategory !== Category.allCategory\r\n && this.selectedCategory !== Category.unCategory) {\r\n // 選擇,使用者類別 = 指定所屬類別的項目清單\r\n sourceSubcategoryList = this.sourceSubcategoryList.filter(v => v.category_text === this.selectedCategory.text);\r\n }\r\n\r\n this.subcategoryList = [];\r\n if (this.subcategorySearchKeyword) {\r\n // 有關建字搜尋\r\n sourceSubcategoryList = sourceSubcategoryList.filter(v => v.text.indexOf(this.subcategorySearchKeyword) > -1);\r\n } else {\r\n // 無關鍵字搜尋\r\n this.subcategoryList.push(Subcategory.allSubcategory);\r\n this.subcategoryList.push(Subcategory.unSubcategory);\r\n }\r\n this.subcategoryList.push(...sourceSubcategoryList);\r\n }\r\n\r\n\r\n pullAllList(): void {\r\n this.pullCategoryListObserver.subscribe();\r\n this.pullSubcategoryListObserver.subscribe();\r\n }\r\n\r\n // pullCategoryList(): void {\r\n // // this.inputService.pullCategoryListObserver().subscribe();\r\n // // this.pullCategoryListFunc();\r\n // }\r\n // pullSubcategoryList(): void {\r\n // // this.inputService.pullSubcategoryListObserver().subscribe();\r\n // // this.pullSubcategoryListFunc();\r\n // }\r\n\r\n // resetCategory(): void {\r\n // this.resetCategory$EV.next();\r\n // }\r\n // resetSubcategory(): void {\r\n // this.resetSubcategory$EV.next();\r\n // }\r\n}\r\n","import { Component, OnInit, ViewChild, ViewEncapsulation, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { FilterPopupService } from '../filter-popup.service';\r\nimport { PageChangeComponent } from '../../page-change/page-change.component';\r\nimport { KeywordFinderComponent } from '../../keyword-finder/keyword-finder.component';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { Category } from '../../category/category';\r\n\r\n@Component({\r\n selector: 'app-list-block-category',\r\n templateUrl: './list-block-category.component.html',\r\n styleUrls: ['./list-block-category.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ListBlockCategoryComponent implements OnInit, OnDestroy {\r\n @ViewChild(PageChangeComponent, { static: true }) pageChange: PageChangeComponent;\r\n @ViewChild(KeywordFinderComponent, { static: true }) keywordFinder: KeywordFinderComponent;\r\n // @Input() selectedCategory$: BehaviorSubject;\r\n // @Input() filterPopupService: FilterPopupService;\r\n // @Output() select: EventEmitter = new EventEmitter();\r\n\r\n // categoryList: CategoryList;\r\n // count: number;\r\n // list: Category[];\r\n // selectedCategory: Category;\r\n\r\n get selectedCategory(): Category { return this.filterPopupService.selectedCategory; }\r\n get list(): Category[] { return this.filterPopupService.categoryList; }\r\n\r\n perPageItemAmount: number = 12;\r\n // get pageIndex(): number { return this.pageChange ? this.pageChange.currentIndex : 1; }\r\n // get leftStart(): number { return (this.pageIndex - 1) * this.perPageItemAmount; }\r\n // get leftStop(): number { return this.leftStart + (this.perPageItemAmount / 2); }\r\n // get rightStart(): number { return this.leftStop; }\r\n // get rightStop(): number { return this.rightStart + (this.perPageItemAmount / 2); }\r\n // get startIndex(): number { return (this.pageIndex - 1) * this.perPageItemAmount; }\r\n startIndex: number = 0;\r\n startSn: number = 1;\r\n get leftList(): Category[] {\r\n return [0, 1, 2, 3, 4, 5]\r\n .map((n, i) => {\r\n return this.list[this.startIndex + n];\r\n });\r\n }\r\n get rightList(): Category[] {\r\n return [6, 7, 8, 9, 10, 11]\r\n .map((n, i) => {\r\n return this.list[this.startIndex + n];\r\n });\r\n }\r\n // get startSn(): number { return this.startIndex + 1; }\r\n\r\n filter: Category = Category.NewCategory(null, null, null);\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private filterPopupService: FilterPopupService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n // 更新清單頁\r\n this.filterPopupService.updateAllList();\r\n // 設定初始頁\r\n this.pageChange.currentIndex = this.findCategoryPage(this.filterPopupService.selectedCategory);\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.filterPopupService.sourceCategoryList.length,\r\n this.filterPopupService.categoryList.length,\r\n this.perPageItemAmount\r\n );\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n\r\n // 換頁器刷新\r\n this.subscriptions.refresh = this.pageChange.refresh.subscribe(() => {\r\n this.filterPopupService.pullAllList();\r\n });\r\n // 換頁器換頁\r\n this.subscriptions.pageChange = this.pageChange.pageChange.subscribe(pageIndex => {\r\n this.pageChange.currentIndex = pageIndex;\r\n // console.log(pageIndex, this.pageChange.currentIndex);\r\n this.updateStartIndex();\r\n });\r\n\r\n // 關鍵字搜尋\r\n this.subscriptions.keywordSearch = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n this.filterPopupService.categorySearchKeyword = keyword;\r\n this.filter.text = keyword;\r\n this.filterPopupService.updateAllList();\r\n this.pageChange.update(\r\n this.filterPopupService.categorySearchKeyword ?\r\n this.filterPopupService.categoryList.length :\r\n this.filterPopupService.sourceCategoryList.length,\r\n this.filterPopupService.categoryList.length,\r\n this.perPageItemAmount\r\n );\r\n this.pageChange.currentIndex = 1;\r\n this.updateStartIndex();\r\n });\r\n\r\n\r\n\r\n\r\n\r\n // this.selectedCategory = this.filterPopupService.selectedCategory;\r\n // this.categoryList = this.filterPopupService.categoryList;\r\n\r\n // this.initSubscribeFilterList();\r\n // this.initSubscribePage();\r\n\r\n // this.goToItemPageIndex(this.selectedCategory);\r\n }\r\n ngOnDestroy(): void {\r\n this.filterPopupService.categorySearchKeyword = '';\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n // initSubscribeFilterList(): void {\r\n // //訂閱類別清單\r\n // this.subscriptions.selectedCategoryList = this.filterPopupService.categoryList$.subscribe(r => {\r\n // console.log('update category list');\r\n // this.categoryList = r;\r\n // this.filterList();\r\n // });\r\n\r\n // //關鍵字搜須尋\r\n // this.subscriptions.keywordFinder = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n // this.filter.text = keyword;\r\n // this.filterList();\r\n // });\r\n // }\r\n // initSubscribePage(): void {\r\n // //訂閱彈窗已選擇的類別\r\n // this.subscriptions.selectedCategory = this.filterPopupService.selectedCategory$.subscribe(r => {\r\n // console.log('selected category');\r\n\r\n // this.selectedCategory = r;\r\n // this.goToItemPageIndex(this.selectedCategory);\r\n // });\r\n\r\n // //換頁器點擊換頁\r\n // this.subscriptions.pageChange = this.pageChange.clickGoToIndex$.subscribe(n => {\r\n // this.updatePageRange(n);\r\n // });\r\n // }\r\n\r\n\r\n // updatePageRange(pageIndex: number): void {\r\n // this.leftStart = this.perPageItemAmount * (pageIndex - 1)\r\n // this.leftStop = this.leftStart + 6;\r\n // this.rightStart = this.leftStop;\r\n // this.rightStop = this.rightStart + 6;\r\n // }\r\n\r\n updateStartIndex(): void {\r\n this.startIndex = (this.pageChange.currentIndex - 1) * this.perPageItemAmount;\r\n\r\n // 有關建字搜尋,從1開始\r\n if (this.filterPopupService.categorySearchKeyword) {\r\n this.startSn = (this.pageChange.currentIndex - 1) * this.perPageItemAmount + 1;\r\n } else {\r\n // 沒關鍵字搜尋,從-1開始\r\n this.startSn = (this.pageChange.currentIndex - 1) * this.perPageItemAmount - 1;\r\n }\r\n }\r\n\r\n pullCategoryList(): void {\r\n this.filterPopupService.pullCategoryListObserver.subscribe();\r\n }\r\n\r\n\r\n // goToItemPageIndex(item: Category): void {\r\n // if (item && item.sn > -1) {\r\n // let index = this.list.findIndex(a => a == item) + 1;\r\n // let pageIndex = Math.ceil(index / this.pageChange.perPageAmount);\r\n // pageIndex = this.pageChange.lastIndex < pageIndex ? this.pageChange.lastIndex : pageIndex;\r\n // pageIndex = pageIndex == 0 ? 1 : pageIndex;\r\n // this.pageChange.clickGoToPage(pageIndex);\r\n // } else {\r\n // // this.selectedItem = this.unItem;\r\n // this.pageChange.clickGoToPage(1);\r\n // }\r\n // }\r\n\r\n // setListSn(list: Category[]): Category[] {\r\n // for (let i = 0; i < list.length; i++) {\r\n // if (!list[i].text) {\r\n // continue;\r\n // }\r\n // list[i].virtual_index = (i + 1);\r\n // }\r\n // return list;\r\n // }\r\n // fillEmptyItem(startIndex: number): void {\r\n // let addEmptyCount = (this.perPageItemAmount - this.list.length % this.perPageItemAmount);\r\n // for (let i = 0; i < addEmptyCount; i++) {\r\n // this.list.push(Category.NewCategory(startIndex + i, null, null));\r\n // }\r\n // }\r\n // filterList(): void {\r\n // this.list = [Category.allCategory, Category.unCategory];\r\n\r\n // let displayCount = 0;\r\n // let pageItemCount = 0;\r\n\r\n // if (!this.filter.text) {\r\n // this.setListSn(this.categoryList.list);\r\n // this.list.push(...this.categoryList.list);\r\n // displayCount = this.categoryList.count;\r\n // pageItemCount = displayCount + 2;\r\n // } else if (this.filter.text) {\r\n // this.list = this.categoryList.list.filter(category => {\r\n // if (category.text.toLocaleLowerCase().indexOf(this.filter.text.toLocaleLowerCase()) == -1) {\r\n // return false;\r\n // }\r\n\r\n // return true;\r\n // });\r\n // this.setListSn(this.list);\r\n // displayCount = this.list.length;\r\n // pageItemCount = displayCount;\r\n // }\r\n\r\n // this.fillEmptyItem(displayCount + 1);\r\n\r\n\r\n // this.pageChange.update(displayCount, pageItemCount, this.perPageItemAmount);\r\n // // console.log('update page ', displayCount, pageItemCount, this.pageChange.lastIndex);\r\n // this.pageChange.clickGoToPage(1);\r\n // }\r\n\r\n getCategoryIconStyle(category: Category): any {\r\n // console.log(category.sn, Category.getIconStyle(category));\r\n return Category.getIconStyle(category);\r\n }\r\n\r\n // itemSn(item: Category): string {\r\n // if (item.sn < 0) {\r\n // return '';\r\n // }\r\n // // return item.sn.toString();\r\n // if (!item.virtual_index) {\r\n // return item.sn.toString();\r\n // }\r\n // return item.virtual_index.toString();\r\n // }\r\n\r\n selectCategory(category: Category): void {\r\n // console.log(category);\r\n this.filterPopupService.selectCategory(category);\r\n this.pageChange.currentIndex = this.findCategoryPage(this.filterPopupService.selectedCategory);\r\n this.pageChange.update(\r\n this.filterPopupService.categorySearchKeyword ?\r\n this.filterPopupService.categoryList.length :\r\n this.filterPopupService.sourceCategoryList.length,\r\n this.filterPopupService.categoryList.length,\r\n this.perPageItemAmount\r\n );\r\n this.filterPopupService.updateAllList();\r\n this.updateStartIndex();\r\n // if (category.sn == null\r\n // || category.text == null) {\r\n // return;\r\n // }\r\n // this.select.emit(category);\r\n }\r\n\r\n findCategoryPage(category: Category): number {\r\n const index = this.list.findIndex(v => v === category);\r\n if (index === -1) {\r\n return 1;\r\n }\r\n const pageIndex = Math.floor(index / this.perPageItemAmount) + 1;\r\n return pageIndex;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
類別內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
類別內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
{{item.sn>0?sn:''}}
\r\n
\r\n
\r\n
\r\n 0\"> [{{item.reference_count}}]\r\n
\r\n
\r\n\r\n
{{sn}}
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { ListBlockCategoryComponent } from './list-block-category.component';\r\nimport { PageChangeModule } from \"../../page-change/page-change.module\";\r\nimport { KeywordFinderModule } from \"../../keyword-finder/keyword-finder.module\";\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n PageChangeModule,\r\n KeywordFinderModule,\r\n PipeHighlightModule,\r\n ],\r\n declarations: [\r\n ListBlockCategoryComponent,\r\n ],\r\n exports: [\r\n ListBlockCategoryComponent\r\n ]\r\n})\r\nexport class ListBlockCategoryModule { }\r\n","
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
成員
\r\n
\r\n
\r\n
\r\n
1
\r\n \r\n \r\n
\r\n
\r\n
2
\r\n \r\n \r\n
\r\n
\r\n
3
\r\n \r\n \r\n
\r\n
\r\n
4
\r\n \r\n \r\n
\r\n
\r\n
5
\r\n \r\n \r\n
\r\n\r\n
\r\n
{{a}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
成員
\r\n
\r\n
\r\n
\r\n
{{a}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-list-block-join-discuss',\r\n templateUrl: './list-block-join-discuss.component.html',\r\n styleUrls: ['./list-block-join-discuss.component.scss']\r\n})\r\nexport class ListBlockJoinDiscussComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ListBlockJoinDiscussComponent } from './list-block-join-discuss.component';\r\nimport { PageChangeModule } from \"../../page-change/page-change.module\";\r\nimport { KeywordFinderModule } from \"../../keyword-finder/keyword-finder.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PageChangeModule,\r\n KeywordFinderModule\r\n ],\r\n declarations: [ListBlockJoinDiscussComponent],\r\n exports:[ListBlockJoinDiscussComponent]\r\n})\r\nexport class ListBlockJoinDiscussModule { }\r\n","import { Component, OnInit, ViewEncapsulation, ViewChild, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { FilterPopupService } from '../filter-popup.service';\r\nimport { PageChangeComponent } from '../../page-change/page-change.component';\r\nimport { KeywordFinderComponent } from '../../keyword-finder/keyword-finder.component';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { Category } from '../../category/category';\r\nimport { Subcategory } from '../../category/subcategory';\r\n\r\n@Component({\r\n selector: 'app-list-block-subcategory',\r\n templateUrl: './list-block-subcategory.component.html',\r\n styleUrls: ['./list-block-subcategory.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ListBlockSubcategoryComponent implements OnInit, OnDestroy {\r\n @ViewChild(PageChangeComponent, { static: true }) pageChange: PageChangeComponent;\r\n @ViewChild(KeywordFinderComponent, { static: true }) keywordFinder: KeywordFinderComponent;\r\n // @Input() selectedCategory$: BehaviorSubject;\r\n // @Input() selectedSubcategory$: BehaviorSubject;\r\n // @Input() filterPopupService: FilterPopupService;\r\n // @Output() select: EventEmitter = new EventEmitter();\r\n\r\n // subcategoryList: SubcategoryList;\r\n\r\n // count: number;\r\n get selectedCategory(): Category { return this.filterPopupService.selectedCategory; }\r\n get selectedSubcategory(): Subcategory { return this.filterPopupService.selectedSubcategory; }\r\n get list(): Subcategory[] { return this.filterPopupService.subcategoryList; }\r\n\r\n perPageItemAmount: number = 12;\r\n // leftStart: number;\r\n // leftStop: number;\r\n // rightStart: number;\r\n // rightStop: number;\r\n startIndex: number = 0;\r\n startSn: number = 1;\r\n get leftList(): Subcategory[] {\r\n return [0, 1, 2, 3, 4, 5]\r\n .map((n, i) => {\r\n return this.list[this.startIndex + n];\r\n });\r\n }\r\n get rightList(): Subcategory[] {\r\n return [6, 7, 8, 9, 10, 11]\r\n .map((n, i) => {\r\n return this.list[this.startIndex + n];\r\n });\r\n }\r\n\r\n filter: Subcategory = Subcategory.NewSubcategory(null, Subcategory.defaultTypeId, null, null);\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private filterPopupService: FilterPopupService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n // 設定換頁器初始\r\n this.pageChange.update(\r\n this.filterPopupService.sourceSubcategoryList.length,\r\n this.filterPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n\r\n // 設定訂閱,刷新類別項目清單\r\n this.subscriptions.refresh = this.pageChange.refresh.subscribe(() => {\r\n this.filterPopupService.pullAllList();\r\n });\r\n this.subscriptions.pageChange = this.pageChange.pageChange.subscribe(pageIndex => {\r\n this.pageChange.currentIndex = pageIndex;\r\n // console.log(pageIndex, this.pageChange.currentIndex);\r\n this.updateStartIndex();\r\n });\r\n\r\n // 關鍵字搜尋\r\n this.subscriptions.keywordSearch = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n this.filterPopupService.subcategorySearchKeyword = keyword;\r\n this.filter.text = keyword;\r\n this.filterPopupService.updateAllList();\r\n\r\n let displayCount: number = 0;\r\n if (this.filterPopupService.subcategorySearchKeyword) {\r\n displayCount = this.filterPopupService.subcategoryList.length;\r\n } else if (this.filterPopupService.selectedSubcategory) {\r\n displayCount = this.filterPopupService.subcategoryList.length - 2;\r\n } else {\r\n displayCount = this.filterPopupService.sourceSubcategoryList.length;\r\n }\r\n this.pageChange.update(displayCount,\r\n this.filterPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n\r\n\r\n this.pageChange.currentIndex = 1;\r\n this.updateStartIndex();\r\n });\r\n\r\n\r\n // 更新清單頁\r\n this.filterPopupService.updateAllList();\r\n this.pageChange.currentIndex = this.findSubcategoryPage(this.selectedSubcategory);\r\n // 更新清單開頭索引位置\r\n this.updateStartIndex();\r\n\r\n // this.selectedCategory = this.filterPopupService.selectedCategory;\r\n // this.selectedSubcategory = this.filterPopupService.selectedSubcategory;\r\n // this.subcategoryList = this.filterPopupService.subcategoryList;\r\n\r\n // this.initSubscribeFilterList();\r\n // this.initSubscribePage();\r\n\r\n // this.goToItemPageIndex(this.selectedSubcategory);\r\n }\r\n ngOnDestroy(): void {\r\n this.filterPopupService.subcategorySearchKeyword = '';\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n updateStartIndex(): void {\r\n this.startIndex = (this.pageChange.currentIndex - 1) * this.perPageItemAmount;\r\n\r\n // 有關建字搜尋,從1開始\r\n if (this.filterPopupService.subcategorySearchKeyword) {\r\n this.startSn = (this.pageChange.currentIndex - 1) * this.perPageItemAmount + 1;\r\n } else {\r\n // 沒關鍵字搜尋,從-1開始\r\n this.startSn = (this.pageChange.currentIndex - 1) * this.perPageItemAmount - 1;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // initSubscribeFilterList(): void {\r\n // //訂閱彈窗已選擇的類別\r\n // this.subscriptions.selectedCategory = this.filterPopupService.selectedCategory$.subscribe(r => {\r\n // this.selectedCategory = r;\r\n // this.filterList();\r\n // });\r\n\r\n // //訂閱項目清單\r\n // this.subscriptions.subcategoryList = this.filterPopupService.subcategoryList$.subscribe(r => {\r\n // // this.selectedSubcategory = r;\r\n // this.subcategoryList = r;\r\n // this.filterList();\r\n // });\r\n\r\n // //關鍵字搜須尋\r\n // this.subscriptions.keywordFinder = this.keywordFinder.searchedText$.subscribe(keyword => {\r\n // this.filter.text = keyword;\r\n // this.filterList();\r\n // });\r\n // }\r\n // initSubscribePage(): void {\r\n // //訂閱彈窗已選擇的項目\r\n // this.subscriptions.selectedSubcategory = this.filterPopupService.selectedSubcategory$.subscribe(r => {\r\n // this.selectedSubcategory = r;\r\n // this.goToItemPageIndex(this.selectedSubcategory);\r\n // });\r\n\r\n // //換頁器點擊換頁\r\n // this.subscriptions.pageChange = this.pageChange.clickGoToIndex$.subscribe(n => {\r\n // this.updatePageRange(n);\r\n // });\r\n // }\r\n\r\n\r\n // updatePageRange(pageIndex: number): void {\r\n // this.leftStart = this.perPageItemAmount * (pageIndex - 1)\r\n // this.leftStop = this.leftStart + 6;\r\n // this.rightStart = this.leftStop;\r\n // this.rightStop = this.rightStart + 6;\r\n // }\r\n\r\n // pullSubcategoryList(): void {\r\n // this.filterPopupService.pullSubcategoryList();\r\n // }\r\n\r\n // goToItemPageIndex(item: Subcategory): void {\r\n // if (item && item.sn > -1) {\r\n // let index = this.list.findIndex(a => a == item) + 1;\r\n // let pageIndex = Math.ceil(index / this.pageChange.perPageAmount);\r\n // pageIndex = this.pageChange.lastIndex < pageIndex ? this.pageChange.lastIndex : pageIndex;\r\n // pageIndex = pageIndex == 0 ? 1 : pageIndex;\r\n // this.pageChange.clickGoToPage(pageIndex);\r\n // } else {\r\n // this.pageChange.clickGoToPage(1);\r\n // }\r\n // }\r\n\r\n\r\n // autoOrder(): void {\r\n // let list = this.filterPopupService.subcategoryList.list;\r\n // let categoryList = this.filterPopupService.categoryList.list;\r\n // list.sort((a, b) => {\r\n // if (a.category == null) {\r\n // return 1;\r\n // }\r\n // if (b.category == null) {\r\n // return -1;\r\n // }\r\n // let aCategoryIndex = categoryList.findIndex(v => v.text == a.category);\r\n // let bCategoryIndex = categoryList.findIndex(v => v.text == b.category);\r\n\r\n // if (aCategoryIndex < bCategoryIndex) {\r\n // return -1;\r\n // } else if (aCategoryIndex > bCategoryIndex) {\r\n // return 1;\r\n // }\r\n\r\n // return a.sn - b.sn;\r\n // });\r\n // }\r\n // setListSn(list: Subcategory[]): Subcategory[] {\r\n // for (let i = 0; i < list.length; i++) {\r\n // if (!list[i].text) {\r\n // continue;\r\n // }\r\n // list[i].virtual_index = (i + 1);\r\n // }\r\n // return list;\r\n // }\r\n // fillEmptyItem(startIndex: number) {\r\n // let addEmptyCount = (this.perPageItemAmount - this.list.length % this.perPageItemAmount);\r\n // for (let i = 0; i < addEmptyCount; i++) {\r\n // // this.list.push(Subcategory.NewSubcategory(null, null, null, null, null));\r\n // this.list.push(Subcategory.NewSubcategory(startIndex + i, null, null, null));\r\n // }\r\n // }\r\n // filterList(): void {\r\n // console.log('update list');\r\n\r\n // this.list = [Subcategory.allSubcategory, Subcategory.unSubcategory];\r\n\r\n // this.autoOrder();\r\n\r\n // let displayCount = 0;\r\n // let pageItemCount = 0;\r\n\r\n // let _subcategoryList = this.subcategoryList.list;\r\n // if (this.selectedCategory && this.selectedCategory.sn > -1) {\r\n // _subcategoryList = this.subcategoryList.list.filter(subcategory => {\r\n // return subcategory.category == this.selectedCategory.text;\r\n // });\r\n // }\r\n\r\n // if (!this.filter.text) {\r\n // this.setListSn(_subcategoryList);\r\n // this.list.push(..._subcategoryList);\r\n // displayCount = _subcategoryList.length;\r\n // pageItemCount = displayCount + 2;\r\n // // this.count = this.subcategoryList.count;\r\n // // this.count = _subcategoryList.length;\r\n // } else if (this.filter.text) {\r\n // this.list = _subcategoryList.filter(subcategory => {\r\n // if (subcategory.text.toLocaleLowerCase().indexOf(this.filter.text.toLocaleLowerCase()) == -1) {\r\n // return false;\r\n // }\r\n\r\n // return true;\r\n // });\r\n // this.setListSn(this.list);\r\n // displayCount = this.list.length;\r\n // pageItemCount = displayCount;\r\n // }\r\n\r\n // this.fillEmptyItem(displayCount + 1);\r\n\r\n // this.pageChange.update(displayCount, pageItemCount, this.perPageItemAmount);\r\n // this.pageChange.clickGoToPage(1);\r\n // }\r\n\r\n getSubcategoryIconStyle(subcategory: Subcategory): any {\r\n return Subcategory.getIconStyle(subcategory);\r\n }\r\n\r\n // itemSn(subcategory: Subcategory): string {\r\n // // if (subcategory == null\r\n // // || subcategory.row_index == null) {\r\n // // return '';\r\n // // }\r\n // //if(selectedCategory)\r\n // // return this.appCommonService.padNumber(subcategory.sn+1);\r\n // // return this.appCommonService.padNumber(subcategory.row_index + 1);\r\n\r\n // if (subcategory.sn < 0) {\r\n // return '';\r\n // }\r\n\r\n // if (!subcategory.virtual_index) {\r\n // return subcategory.sn.toString();\r\n // }\r\n\r\n // return subcategory.virtual_index.toString();\r\n // }\r\n\r\n selectSubcategory(subcategory: Subcategory): void {\r\n this.filterPopupService.selectSubcategory(subcategory);\r\n\r\n let displayCount: number = 0;\r\n if (this.filterPopupService.subcategorySearchKeyword) {\r\n displayCount = this.filterPopupService.subcategoryList.length;\r\n } else if (this.filterPopupService.selectedSubcategory) {\r\n displayCount = this.filterPopupService.subcategoryList.length - 2;\r\n } else {\r\n displayCount = this.filterPopupService.sourceSubcategoryList.length;\r\n }\r\n this.pageChange.update(displayCount,\r\n this.filterPopupService.subcategoryList.length,\r\n this.perPageItemAmount\r\n );\r\n\r\n this.pageChange.currentIndex = this.findSubcategoryPage(this.filterPopupService.selectedSubcategory);\r\n this.filterPopupService.updateAllList();\r\n this.updateStartIndex();\r\n // if (subcategory.sn == null\r\n // || subcategory.text == null) {\r\n // return;\r\n // }\r\n // this.select.emit(subcategory);\r\n }\r\n findSubcategoryPage(subcategory: Subcategory): number {\r\n const index = this.list.findIndex(v => v === subcategory);\r\n if (index === -1) {\r\n return 1;\r\n }\r\n const pageIndex = Math.floor(index / this.perPageItemAmount) + 1;\r\n return pageIndex;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
項目內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
項目內容
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
{{item.sn>-1?sn:''}}
\r\n
\r\n
\r\n
\r\n 0\"> [{{item.reference_count}}]\r\n
\r\n
\r\n\r\n
{{sn}}
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ListBlockSubcategoryComponent } from './list-block-subcategory.component';\r\nimport { PageChangeModule } from \"../../page-change/page-change.module\";\r\nimport { KeywordFinderModule } from \"../../keyword-finder/keyword-finder.module\";\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { PipeHighlightModule } from 'projects/lwlib/src/pipe-highlight/pipe-highlight.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n PageChangeModule,\r\n KeywordFinderModule,\r\n PipeHighlightModule,\r\n ],\r\n declarations: [\r\n ListBlockSubcategoryComponent,\r\n ],\r\n exports: [\r\n ListBlockSubcategoryComponent\r\n ]\r\n})\r\nexport class ListBlockSubcategoryModule { }\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
成員
\r\n
\r\n
\r\n
\r\n
{{a}}
\r\n \r\n \r\n
\r\n
\r\n
{{a}}
\r\n \r\n \r\n
\r\n
\r\n
{{a}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
成員
\r\n
\r\n
\r\n
\r\n
{{a}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-list-block-team-member',\r\n templateUrl: './list-block-team-member.component.html',\r\n styleUrls: ['./list-block-team-member.component.scss']\r\n})\r\nexport class ListBlockTeamMemberComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ListBlockTeamMemberComponent } from './list-block-team-member.component';\r\nimport { PageChangeModule } from \"../../page-change/page-change.module\";\r\nimport { KeywordFinderModule } from \"../../keyword-finder/keyword-finder.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PageChangeModule,\r\n KeywordFinderModule\r\n ],\r\n declarations: [ListBlockTeamMemberComponent],\r\n exports:[ListBlockTeamMemberComponent]\r\n})\r\nexport class ListBlockTeamMemberModule { }\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\n\r\n@Component({\r\n selector: 'app-fix-profile-notify-popup',\r\n templateUrl: './fix-profile-notify-popup.component.html',\r\n styleUrls: ['./fix-profile-notify-popup.component.scss']\r\n})\r\nexport class FixProfileNotifyPopupComponent extends BasePopup implements OnInit {\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n ngOnInit() {\r\n }\r\n initPopup(): void { }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
補正通知
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n
\r\n
我們相當重視會員資料完整及正確性,請提供正確的會員資料,以利審查程序。
\r\n
\r\n
\r\n
\r\n
\r\n
連絡小編
\r\n
\r\n
\r\n
\r\n
資料變更
\r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FixProfileNotifyPopupComponent } from './fix-profile-notify-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n ],\r\n declarations: [FixProfileNotifyPopupComponent],\r\n exports: [FixProfileNotifyPopupComponent]\r\n})\r\nexport class FixProfileNotifyPopupModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivateChild, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router, CanLoad, Route, UrlSegment, CanActivate } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { NetService } from '../net.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeviceCheckIsDesktopGuard implements CanActivate, CanActivateChild, CanLoad {\r\n constructor(\r\n private router: Router,\r\n private net: NetService,\r\n ) { }\r\n\r\n check(): Observable {\r\n return new Observable((subsc) => {\r\n console.log(`isDesktopDevice:${this.net.isDesktopDevice}`);\r\n console.log(`isTest:${this.net.isTest}`);\r\n\r\n // if (location.port == '59997') {\r\n // subsc.next(true);\r\n // subsc.complete();\r\n // return () => { };\r\n // }\r\n let result = this.net.isDesktopDevice;\r\n if (this.net.isTest) {\r\n result = true;\r\n } else if (!this.net.isTest) {\r\n if (this.net.isMobileDevice && !this.net.isMobileHost) {\r\n console.log('go to mobile');\r\n this.net.toMobileSite();\r\n }\r\n }\r\n\r\n subsc.next(result);\r\n\r\n console.log('complete isDesktopDevice check');\r\n subsc.complete();\r\n\r\n return () => { };\r\n });\r\n }\r\n\r\n canLoad(route: Route, segments: UrlSegment[]): boolean | Observable | Promise {\r\n console.log('DeviceCheckIsDesktopGuard canLoad check');\r\n return this.check();\r\n }\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\r\n console.log('DeviceCheckIsDesktopGuard canActivate check');\r\n return this.check();\r\n }\r\n canActivateChild(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n console.log('DeviceCheckIsDesktopGuard canActivateChild check');\r\n return this.check();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivateChild, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { NetService } from '../net.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeviceCheckerGuard implements CanActivateChild {\r\n constructor(\r\n private router: Router,\r\n private net: NetService,\r\n ) { }\r\n canActivateChild(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n console.log(next);\r\n console.log(state);\r\n console.log(`isDesktop:${this.net.isDesktopDevice}`);\r\n console.log(`isMobile:${this.net.isMobileDevice}`);\r\n\r\n return false;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-guest-timeup-popup',\r\n templateUrl: './guest-timeup-popup.component.html',\r\n styleUrls: ['./guest-timeup-popup.component.scss']\r\n})\r\nexport class GuestTimeupPopupComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

guest-timeup-popup works!

\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GuestTimeupPopupComponent } from './guest-timeup-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n GuestTimeupPopupComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n GuestTimeupPopupComponent\r\n ]\r\n})\r\nexport class GuestTimeupPopupModule { }\r\n","export class Guid {\r\n static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n})\r\nexport class IdlerModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\nimport { environment } from 'projects/desktop/src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IdlerService {\r\n\r\n get isIdle(): boolean {\r\n return this.getLastActiveTime() == -1;\r\n }\r\n get isActive(): boolean {\r\n return this.getLastActiveTime() > -1;\r\n }\r\n idleTime: number = 60 * 1000; // 60s\r\n timer;\r\n localStorageName: string = 'IU40ZI';\r\n\r\n constructor(\r\n private common: AppCommonService,\r\n private notificationService: NotificationService,\r\n ) { }\r\n\r\n getLastActiveTime(): number {\r\n return this.common.hex36ToInt(localStorage.getItem(this.localStorageName) || '-1');\r\n }\r\n setActiveTimeNow(): void {\r\n const time = new Date().getTime();\r\n this.setActiveTime(time);\r\n }\r\n setActiveTime(time: number): void {\r\n localStorage.setItem(this.localStorageName, this.common.intToHex36(time));\r\n }\r\n userActive(reason: string): void {\r\n // if (!environment.production) {\r\n // }\r\n this.notificationService.addNormal(`活動, 原因:${reason}`);\r\n\r\n this.setActiveTimeNow();\r\n\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n }\r\n\r\n this.timer = setTimeout(() => {\r\n this.userIdle();\r\n clearTimeout(this.timer);\r\n }, this.idleTime);\r\n }\r\n userIdle(): void {\r\n this.notificationService.addNormal('閒置');\r\n this.setActiveTime(-1);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Category } from '../category/category';\r\nimport { Subcategory } from '../category/subcategory';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { CategoryList } from '../category/category-list';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { tap, map } from 'rxjs/operators';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { SubcategoryList } from '../category/subcategory-list';\r\nimport { DataUpdateResult } from 'projects/lwlib/src/data-update-result';\r\nimport { CategoryAddRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/category-add-request';\r\nimport { CategoryEditRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/category-edit-request';\r\nimport { CategoryDeleteRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/category-delete-request';\r\nimport { CategoryOrderRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/category-order-request';\r\nimport { CategoryOrderRequestData } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/category-order-request-data';\r\nimport { SubcategoryAddRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/subcategory-add-request';\r\nimport { SubcategoryOrderRequestData } from '../edit-category-popup/subcategory-order-request-data';\r\nimport { SubcategoryEditRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/subcategory-edit-request';\r\nimport { SubcategoryDeleteRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/subcategory-delete-request';\r\nimport { SubcategoryOrderRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/subcategory-order-request';\r\nimport { CaseTag } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/case-tag';\r\nimport { CaseTagUpdateRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/case-tag-update-request';\r\nimport { SummarySave } from '../summary-list/summary-save';\r\nimport { SummaryDeleteRequest } from '../summary-list/summary-delete-request';\r\nimport { SummaryListOrderRequest } from '../summary-list/summary-list-order-request';\r\nimport { NoteRenameRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/note-rename-request';\r\nimport { IndictmentCase } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/indictment-case';\r\nimport { Issue } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue';\r\nimport { NoteClassifyRequest } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/note-classify-request';\r\nimport { CheckInDataJudgmentCase } from '../check-in/check-in-data-judgment-case';\r\nimport { SaveResultStatusId } from '../save-count-limit-popup/save-result-status.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IndictmentService {\r\n categoryList: Category[] = [];\r\n subcategoryList: Subcategory[] = [];\r\n\r\n /** key = category.text */\r\n categoryDict: { [key: string]: Category } = {};\r\n /** key = subcategory.category+'-'+subcategory.text */\r\n subcategoryDict: { [key: string]: Subcategory } = {};\r\n\r\n categoryList$: Subject = new Subject();\r\n subcategoryList$: Subject = new Subject();\r\n\r\n // 原本是indictment, 因為現在起訴書是跟裁判通用\r\n private hostType: string = 'judgment'; // indictment\r\n\r\n constructor(\r\n private service: AppService,\r\n ) { }\r\n\r\n\r\n\r\n // 取值類 ***********************************************************************\r\n\r\n /** 類別清單 */\r\n pullCategoryListObserver(): Observable {\r\n return this.service.get(this.hostType + '/category_list')\r\n .pipe(\r\n map((list: CategoryList) => {\r\n return list.list.map(v => {\r\n const mapedItem: Category =\r\n Serializable.extendObjectFromResponseObject(new Category(), v);\r\n return mapedItem;\r\n });\r\n }),\r\n tap(items => {\r\n this.categoryList = items;\r\n this.categoryDict = {};\r\n items.forEach(v => {\r\n this.categoryDict[v.key] = v;\r\n });\r\n console.log(this.categoryDict);\r\n })\r\n );\r\n }\r\n\r\n /** 項目清單 */\r\n pullSubcategoryListObserver(): Observable {\r\n return this.service.get(this.hostType + '/subcategory_list')\r\n .pipe(\r\n map(list => {\r\n return list.list.map(v => {\r\n const mapedItem: Subcategory =\r\n Serializable.extendObjectFromResponseObject(new Subcategory(), v);\r\n return mapedItem;\r\n });\r\n }),\r\n tap(list => {\r\n this.subcategoryList = list;\r\n this.subcategoryDict = {};\r\n list.forEach(v => {\r\n this.subcategoryDict[v.key] = v;\r\n });\r\n })\r\n );\r\n }\r\n\r\n /** 筆記清單 */\r\n\r\n /** 摘要清單 */\r\n\r\n\r\n // 更新類 ***********************************************************************\r\n\r\n /** 類別更新 */\r\n addCategoryObserver(category: Category): Observable {\r\n const request: CategoryAddRequest = {\r\n category: category\r\n };\r\n return this.service.post(this.hostType + '/category_add', request);\r\n }\r\n editCategoryObserver(old_category_text: string, new_category: Category): Observable {\r\n const request: CategoryEditRequest = {\r\n old_category_text: old_category_text,\r\n new_category: new_category,\r\n };\r\n return this.service.post(this.hostType + '/category_edit', request);\r\n }\r\n deleteCategoryObserver(text: string): Observable {\r\n const request: CategoryDeleteRequest = {\r\n category_text: text\r\n };\r\n\r\n return this.service.post(this.hostType + '/category_delete', request);\r\n }\r\n orderCategoryObserver(list: CategoryOrderRequestData[]): Observable {\r\n const request: CategoryOrderRequest = {\r\n order_list: list\r\n };\r\n return this.service.post(this.hostType + '/category_order', request);\r\n }\r\n broadcastCategoryUpdateObserver(ex_connection_id: string): Observable {\r\n const data = {\r\n ex_connection_id: ex_connection_id\r\n };\r\n return this.service.post(this.hostType + '/category_broadcast_update', data);\r\n }\r\n\r\n /** 項目更新 */\r\n addSubcategoryObserver(subcategory: Subcategory): Observable {\r\n const request: SubcategoryAddRequest = {\r\n subcategory: subcategory\r\n };\r\n return this.service.post(this.hostType + '/subcategory_add', request);\r\n }\r\n editSubcategoryObserver(category_text: string, old_subcategory_text: string, new_subcategory: Subcategory): Observable {\r\n const request: SubcategoryEditRequest = {\r\n category_text: category_text,\r\n old_subcategory_text: old_subcategory_text,\r\n new_subcategory: new_subcategory,\r\n };\r\n return this.service.post(this.hostType + '/subcategory_edit', request);\r\n }\r\n deleteSubcategoryObserver(category_text: string, text: string): Observable {\r\n const request: SubcategoryDeleteRequest = {\r\n category_text: category_text,\r\n subcategory_text: text\r\n };\r\n return this.service.post(this.hostType + '/subcategory_delete', request);\r\n }\r\n orderSubcategoryObserver(list: SubcategoryOrderRequestData[]): Observable {\r\n const request: SubcategoryOrderRequest = {\r\n order_list: list\r\n };\r\n return this.service.post(this.hostType + '/subcategory_order', request);\r\n }\r\n broadcastSubcategoryUpdateObserver(ex_connection_id: string): Observable {\r\n const data = {\r\n ex_connection_id: ex_connection_id\r\n };\r\n return this.service.post(this.hostType + '/subcategory_broadcast_update', data);\r\n }\r\n\r\n\r\n // 起訴書專用API vvvv *******\r\n\r\n /** 更新指定筆記 */\r\n // updateNoteDataStorage(case_id: string, callback: () => void = null): void {\r\n // if (this.storageNoteList) {\r\n // const noteIndex = this.storageNoteList.findIndex(v => v.case_id === case_id);\r\n // if (noteIndex > -1) {\r\n // this.getNoteDataStorageObserver(case_id)\r\n // .subscribe((note: JudgmentCase) => {\r\n // // const _note = Serializable.extendObjectFromResponseObject(new JudgmentCase(), note);\r\n // const sourceNote = this.storageNoteList[noteIndex];\r\n // note.sn = sourceNote.sn;\r\n // Serializable.extendObjectFromResponseObject(sourceNote, note);\r\n // // 更新爭點清單\r\n // if (sourceNote.issue_list) {\r\n // sourceNote.issue_list = sourceNote.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n // }\r\n\r\n // if (callback) {\r\n // callback();\r\n // }\r\n // // this.noteList.list[noteIndex] = note;\r\n // // this.personalStorageJudgmentNoteListResponseHandler(this.noteList);\r\n // });\r\n // }\r\n // }\r\n // }\r\n updateNoteDataStorageToList(list: any[], case_id: string, callback: () => void = null): void {\r\n if (list) {\r\n const noteIndex = list.findIndex(v => v.case_id === case_id);\r\n if (noteIndex > -1) {\r\n this.service.get('indictment/storage_note?case_id=' + case_id)\r\n .subscribe((note: IndictmentCase) => {\r\n const sourceNote = list[noteIndex];\r\n note.sn = sourceNote.sn;\r\n Serializable.extendObjectFromResponseObject(sourceNote, note);\r\n // 更新爭點清單\r\n if (sourceNote.issue_list) {\r\n sourceNote.issue_list = sourceNote.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n updateNoteData(inputNote: any, case_id: string, callback: () => void = null): void {\r\n this.service.get('indictment/storage_note?case_id=' + case_id)\r\n .subscribe(note => {\r\n\r\n Serializable.extendObjectFromResponseObject(inputNote, note);\r\n note.sn = inputNote.sn;\r\n\r\n // 更新爭點清單\r\n if (inputNote.issue_list) {\r\n inputNote.issue_list = inputNote.issue_list.map(issue => Serializable.extendObjectFromResponseObject(new Issue(), issue));\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n\r\n });\r\n }\r\n\r\n /** 更新筆記類別、項目 */\r\n getNoteClassifyRequest(note_id: string, category: Category, subcategory: Subcategory): NoteClassifyRequest {\r\n const request: NoteClassifyRequest = {\r\n note_id: note_id,\r\n category: category,\r\n subcategory: subcategory,\r\n } as NoteClassifyRequest;\r\n\r\n return request;\r\n }\r\n updateNoteClassifyObserver(request: NoteClassifyRequest): Observable {\r\n return this.service.post('indictment/note_classify', request);\r\n }\r\n\r\n\r\n /** 命名筆記 */\r\n renameNoteObserver(note_id: string, name: string, name2: string): Observable {\r\n const request: NoteRenameRequest = {\r\n note_id: note_id,\r\n name: name,\r\n name2: name2,\r\n } as NoteRenameRequest;\r\n\r\n return this.service.post('indictment/note_rename', request);\r\n }\r\n\r\n /** 案件標籤更新 */\r\n updateNoteCaseTagListObserver(note_id: string, list: CaseTag[], team_id?: string): Observable {\r\n const request: CaseTagUpdateRequest = new CaseTagUpdateRequest();\r\n request.list = list;\r\n if (team_id) {\r\n request.team_note_id = note_id;\r\n request.team_id = team_id;\r\n } else {\r\n request.note_id = note_id;\r\n }\r\n return this.service.post('indictment/case_tag_update', request);\r\n }\r\n\r\n // 取摘要清單\r\n getSummaryListObserver(case_id: string): Observable {\r\n return this.service.get('indictment/summary?case_id=' + case_id);\r\n }\r\n /** 摘要編輯更新 */\r\n updateSummaryObserver(case_id: string, summarySave: SummarySave): Observable {\r\n return this.service.post('indictment/summary?case_id=' + case_id, summarySave);\r\n }\r\n addSummaryObserver(case_id: string, summarySave: SummarySave): Observable {\r\n return this.service.post('indictment/summary_add?case_id=' + case_id, summarySave);\r\n }\r\n deleteSummaryObserver(request: SummaryDeleteRequest): Observable {\r\n // const request = {\r\n // case_id: case_id,\r\n // summary_id_list: summary_id_list\r\n // };\r\n return this.service.post('indictment/summary_delete', request);\r\n }\r\n updateSummaryListOrderObserver(request: SummaryListOrderRequest): Observable {\r\n return this.service.post('indictment/summary_list_order', request);\r\n }\r\n\r\n\r\n /** 刪除筆記 */\r\n deleteNoteObserver(note_id: string, case_id: string): Observable {\r\n const postData: any = {\r\n note_id: note_id,\r\n case_id: case_id\r\n };\r\n return this.service.post('indictment/note_delete', postData);\r\n }\r\n\r\n\r\n\r\n checkInObserver(case_id: string, status: number): Observable {\r\n return this.service.post('indictment/check_in', {\r\n case_id: case_id,\r\n status: status\r\n });\r\n }\r\n getCheckInDataCaseObserver(case_id: string, count_past_day: number = 0): Observable {\r\n return this.service.get('indictment/check_in_data_case?case_id=' + case_id + '&count_past_days=' + count_past_day);\r\n }\r\n\r\n\r\n // 下載筆記\r\n downloadNoteFromTeam(\r\n team_id: string,\r\n team_note_id: string,\r\n notify_id: string,\r\n force: boolean\r\n ): Observable {\r\n return this.service.post(`indictment/download_note_from_team`, {\r\n team_id: team_id,\r\n team_note_id: team_note_id,\r\n notify_id: notify_id,\r\n force: force\r\n });\r\n }\r\n}\r\n","import { ActionName } from \"projects/lwlib/src/action-name\";\r\n\r\nexport class InitNameTrigger {\r\n name: ActionName;\r\n triggered: boolean = false;\r\n constructor(name: ActionName) {\r\n this.name = name;\r\n }\r\n}","import { InitNameTrigger } from \"./init-name-trigger\";\r\nimport { IInitWatcher } from \"./i-init-watcher\";\r\nimport { ActionName } from \"projects/lwlib/src/action-name\";\r\n\r\nexport class InitWatcher implements IInitWatcher {\r\n id: number;\r\n target: ActionName[][];\r\n targetTrigger: InitNameTrigger[][];\r\n onComplete: Function;\r\n\r\n trigger(name: ActionName): boolean {\r\n let hasHit = this.triggerAllTarget(name);\r\n return hasHit ?\r\n this.targetTrigger.every(t => t.some(t2 => t2.triggered))\r\n : false;\r\n }\r\n private triggerAllTarget(name: ActionName): boolean {\r\n let hasHit: boolean = false;\r\n this.targetTrigger.forEach(t => {\r\n t.forEach(t2 => {\r\n if (t2.name == name) {\r\n t2.triggered = true;\r\n hasHit = true;\r\n }\r\n });\r\n });\r\n\r\n return hasHit;\r\n }\r\n}\r\n\r\n// export class InitWatcher {\r\n\r\n// public mustNames: InitName[] = [];\r\n// public mustNameTriggers: InitTrigger[] = [];\r\n\r\n// // public anyNames?: InitName[] = [];\r\n// // public anyNameTriggers?: InitTrigger[] = [];\r\n\r\n// public onMustComplete: Function;\r\n// public mustCompleteTriggered: boolean = false;\r\n\r\n// // public onAnyHit?: Function;\r\n// // public anyHitTriggered?: boolean = false;\r\n// // public anyHitAllTriggered?: boolean = false;\r\n\r\n// // public onInitComplete?: Function;\r\n// // public initCompleteTriggered?: boolean = false;\r\n\r\n// constructor(names: InitName[], onMustComplete: Function) {\r\n// this.mustNames = names;\r\n// this.onMustComplete = onMustComplete;\r\n\r\n// this.mustNameTriggers = this.mustNames.map(v => new InitTrigger(v));\r\n// }\r\n\r\n// runMustComplete(): boolean {\r\n// if (this.onMustComplete == null) {\r\n// return false;\r\n// }\r\n// if (this.mustCompleteTriggered) {\r\n// return false;\r\n// }\r\n// if (!this.mustNameTriggers.every(v => v.triggered)) {\r\n// return false;\r\n// }\r\n\r\n// this.mustCompleteTriggered = true;\r\n// this.onMustComplete();\r\n\r\n// return true;\r\n// }\r\n// // runAnyComplete(): void {\r\n// // if (this.onAnyHit == null) {\r\n// // return;\r\n// // }\r\n// // // if (this.anyHitTriggered) {\r\n// // // return;\r\n// // // }\r\n// // if (!this.anyNameTriggers.some(v => v.triggered)) {\r\n// // return;\r\n// // }\r\n// // this.anyHitAllTriggered = this.anyNameTriggers.every(v => v.triggered);\r\n// // this.anyHitTriggered = true;\r\n// // this.onAnyHit();\r\n// // }\r\n// }","import { Injectable } from '@angular/core';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { InitWatcher } from './init-watcher';\r\nimport { InitNameTrigger } from './init-name-trigger';\r\nimport { IInitWatcher } from './i-init-watcher';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InitService {\r\n\r\n // nameList: { [key in keyof typeof InitName] } = InitName;\r\n // list: { [key: number]: InitItem } = {};\r\n // list$: Subject<{ [key: number]: InitItem }> = new Subject();\r\n watcherList: InitWatcher[] = [];\r\n\r\n idIndex: number = 0;\r\n\r\n\r\n constructor() {\r\n // let _list: any = {};\r\n // Object.keys(InitName).map(name => {\r\n // _list[name] = new InitItem(InitName[name]);\r\n // });\r\n // this.list = _list;\r\n }\r\n\r\n trigger(name: ActionName): void {\r\n console.log(`trigger init: ${ActionName[name]} (${name})`);\r\n\r\n const completeWatcherList = [];\r\n\r\n this.watcherList.forEach(w => {\r\n if (w.trigger(name)) {\r\n try {\r\n console.log(`complete: ${ActionName[name]} (${name})`);\r\n\r\n w.onComplete();\r\n } catch (error) {\r\n throw error;\r\n }\r\n\r\n completeWatcherList.push(w);\r\n }\r\n });\r\n\r\n this.watcherList = this.watcherList.filter(w =>\r\n !completeWatcherList.some(v => w === v)\r\n );\r\n }\r\n\r\n getIdIndex(): number {\r\n this.idIndex++;\r\n return this.idIndex;\r\n }\r\n\r\n /**\r\n * must: [[1],[2],[3]] --> 1 && 2 && 3 \r\n * any: [[1],[2,3,4],[5]] --> 1 && (2 || 3 || 4) && 5\r\n */\r\n register(watcher: IInitWatcher): InitWatcher {\r\n // must: [[1],[2],[3]] --> 1 && 2 && 3\r\n // any: [[1],[2,3,4],[5]] --> 1 && (2 || 3 || 4) && 5\r\n console.log(`register:`, watcher);\r\n\r\n const _watcher = Serializable.extendObjectFromResponseObject(\r\n new InitWatcher(),\r\n {\r\n id: this.getIdIndex(),\r\n target: watcher.target,\r\n targetTrigger: watcher.target.map(v => v.map(v2 => new InitNameTrigger(v2))),\r\n onComplete: watcher.onComplete\r\n }\r\n );\r\n // let _watcher = {\r\n // id: this.getIdIndex(),\r\n // target: watcher.target,\r\n // targetTrigger: watcher.target.map(v => v.map(v2 => new InitNameTrigger(v2))),\r\n // onComplete: watcher.onComplete\r\n // } as InitWatcher;\r\n\r\n this.watcherList.push(_watcher);\r\n\r\n return _watcher;\r\n }\r\n\r\n\r\n // remove(id: number): void {\r\n\r\n // }\r\n // get(id: number): InitItem {\r\n // return this.list[name];\r\n // }\r\n // exists(name: InitName): boolean {\r\n // return this.list[name] != null;\r\n // }\r\n // isInited(name: InitName): boolean {\r\n // let item = this.list[name];\r\n // if (item == null) {\r\n // return false;\r\n // }\r\n\r\n // return item.inited;\r\n // }\r\n // watch(watcher: InitWatcher): void {\r\n // // if (watcher.mustNames.length) {\r\n // // watcher.mustNameTriggers = watcher.mustNames.map(v => new InitTrigger(v));\r\n // // }\r\n // // if (watcher.anyNames.length) {\r\n // // watcher.anyNameTriggers = watcher.anyNames.map(v => new InitTrigger(v));\r\n // // }\r\n\r\n // this.watcherList.push(watcher);\r\n // }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appInputLimit]'\r\n})\r\nexport class InputCharLimitDirective {\r\n @Input('appInputLimit') inputChars: string[] = [];\r\n constructor(private el: ElementRef) {\r\n\r\n }\r\n\r\n @HostListener('keydown', ['$event']) onKeyDown(event) {\r\n let e = event;\r\n\r\n // console.log(e.key);\r\n\r\n if (this.inputChars.map(v => v.toString()).indexOf(e.key) == -1) {\r\n e.preventDefault();\r\n }\r\n\r\n return;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-introduction-setting-popup',\r\n templateUrl: './introduction-setting-popup.component.html',\r\n styleUrls: ['./introduction-setting-popup.component.scss']\r\n})\r\nexport class IntroductionSettingPopupComponent implements OnInit {\r\n\r\n confirm$: Subject = new Subject();\r\n text: string = '';\r\n\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n close(): void {\r\n this.matDialogRef.close();\r\n }\r\n confirm(): void {\r\n this.confirm$.next(this.text);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
自我介紹
\r\n
\r\n
\r\n
\r\n \r\n
{{text.length}} / 130
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IntroductionSettingPopupComponent } from './introduction-setting-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [IntroductionSettingPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ],\r\n exports: [IntroductionSettingPopupComponent]\r\n})\r\nexport class IntroductionSettingPopupModule { }\r\n","import { Component, OnInit, ElementRef, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { CaseTypeId } from '../case-type/case-type-id.enum';\r\nimport { JudgmentHistory } from 'projects/desktop/src/app/root/root-note-work-judgment/judgment-history';\r\nimport { CourtId } from '../case-type/court-id.enum';\r\nimport { Observable } from 'rxjs';\r\nimport { CommentPopupOpenerService } from '../comment-popup/comment-popup-opener.service';\r\nimport { CommentService } from 'projects/desktop/src/app/root/root-main/comment.service';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\n\r\n@Component({\r\n selector: 'app-judgment-history-popup',\r\n templateUrl: './judgment-history-popup.component.html',\r\n styleUrls: ['./judgment-history-popup.component.scss']\r\n})\r\nexport class JudgmentHistoryPopupComponent extends BasePopup implements OnInit {\r\n\r\n\r\n disableEdit: boolean = false;\r\n disableStorageColumn: boolean = false;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n private commentPopupOpenerService: CommentPopupOpenerService,\r\n private commentService: CommentService,\r\n public dialogRef: MatDialogRef,\r\n private sanitizer: DomSanitizer,\r\n private service: AppService,\r\n ) {\r\n super();\r\n }\r\n\r\n /** 0:地方 1:高等 2:最高 3:智慧 */\r\n courtIdLevelDict: { [key: string]: number } = {\r\n V_D_Taipei: 0,\r\n V_D_Shihlin: 0,\r\n V_D_New_Taipei: 0,\r\n V_D_Keelung: 0,\r\n V_D_Yilan: 0,\r\n V_D_Taoyuan: 0,\r\n V_D_Hsinchu: 0,\r\n V_D_Miaoli: 0,\r\n V_D_Taichung: 0,\r\n V_D_Changhua: 0,\r\n V_D_Nantou: 0,\r\n V_D_Yunlin: 0,\r\n V_D_Chiayi: 0,\r\n V_D_Tainan: 0,\r\n V_D_Kaohsiung: 0,\r\n V_D_Qiaotou: 0,\r\n V_D_Hualien: 0,\r\n V_D_Taitung: 0,\r\n V_D_Pingtung: 0,\r\n V_D_Penghu: 0,\r\n V_D_Kinmen: 0,\r\n V_D_Lienchiang: 0,\r\n V_D_Kaohsiung_Juvenile: 0,\r\n V_H: 1,\r\n V_H_Taichung: 1,\r\n V_H_Tainan: 1,\r\n V_H_Hualien: 1,\r\n V_H_Kaohsiung: 1,\r\n V_H_Kinmen: 1,\r\n V_S: 2,\r\n V_I: 3,\r\n M_D_Taipei: 0,\r\n M_D_Shihlin: 0,\r\n M_D_New_Taipei: 0,\r\n M_D_Keelung: 0,\r\n M_D_Yilan: 0,\r\n M_D_Taoyuan: 0,\r\n M_D_Hsinchu: 0,\r\n M_D_Miaoli: 0,\r\n M_D_Taichung: 0,\r\n M_D_Changhua: 0,\r\n M_D_Nantou: 0,\r\n M_D_Yunlin: 0,\r\n M_D_Chiayi: 0,\r\n M_D_Tainan: 0,\r\n M_D_Kaohsiung: 0,\r\n M_D_Qiaotou: 0,\r\n M_D_Hualien: 0,\r\n M_D_Taitung: 0,\r\n M_D_Pingtung: 0,\r\n M_D_Penghu: 0,\r\n M_D_Kinmen: 0,\r\n M_D_Lienchiang: 0,\r\n M_H: 1,\r\n M_H_Taichung: 1,\r\n M_H_Tainan: 1,\r\n M_H_Hualien: 1,\r\n M_H_Kaohsiung: 1,\r\n M_H_Kinmen: 1,\r\n M_S: 2,\r\n M_I: 3,\r\n A_D_Taipei: 0,\r\n A_D_Shihlin: 0,\r\n A_D_New_Taipei: 0,\r\n A_D_Keelung: 0,\r\n A_D_Yilan: 0,\r\n A_D_Taoyuan: 0,\r\n A_D_Hsinchu: 0,\r\n A_D_Miaoli: 0,\r\n A_D_Taichung: 0,\r\n A_D_Changhua: 0,\r\n A_D_Nantou: 0,\r\n A_D_Yunlin: 0,\r\n A_D_Chiayi: 0,\r\n A_D_Tainan: 0,\r\n A_D_Kaohsiung: 0,\r\n A_D_Qiaotou: 0,\r\n A_D_Hualien: 0,\r\n A_D_Taitung: 0,\r\n A_D_Pingtung: 0,\r\n A_D_Penghu: 0,\r\n A_D_Kinmen: 0,\r\n A_D_Lienchiang: 0,\r\n A_H_Taipei: 1,\r\n A_H_Taichung: 1,\r\n A_H_Kaohsiung: 1,\r\n A_S: 2,\r\n A_I: 3,\r\n O_P: 0,\r\n O_C: 0,\r\n O_J: 0,\r\n };\r\n\r\n list_supreme: JudgmentHistory[] = [];\r\n list_high: JudgmentHistory[] = [];\r\n list_local: JudgmentHistory[] = [];\r\n list_intel: JudgmentHistory[] = [];\r\n list_noCase: JudgmentHistory[] = [];\r\n noHistory: boolean = false;\r\n editCommentObserver: (case_id: string, comment: string) => Observable;\r\n currentCaseId: string;\r\n\r\n editingHistory: JudgmentHistory;\r\n\r\n sfyUrl: SafeUrl;\r\n\r\n openNote: (case_id: string) => void;\r\n\r\n ngOnInit() { }\r\n initPopup(\r\n list: JudgmentHistory[],\r\n currentCaseId: string,\r\n editCommentObserver: (case_id: string, comment: string) => Observable,\r\n openNote: (case_id: string) => void\r\n ): void {\r\n console.log(list);\r\n\r\n list.forEach(v => {\r\n // console.log(v);\r\n // if (v == null\r\n // || !v.case_id) {\r\n // return;\r\n // }\r\n if (v.status) {\r\n this.list_noCase.push(v);\r\n return;\r\n } else if (v.no_data) {\r\n this.list_noCase.push(v);\r\n return;\r\n }\r\n\r\n const groupId = this.courtIdLevelDict[CourtId[v.court_id]];\r\n if (groupId === 0) {\r\n this.list_local.push(v);\r\n } else if (groupId === 1) {\r\n this.list_high.push(v);\r\n } else if (groupId === 2) {\r\n this.list_supreme.push(v);\r\n } else if (groupId === 3) {\r\n this.list_intel.push(v);\r\n }\r\n });\r\n this.list_supreme.sort(this.sortHistoryByDate);\r\n this.list_high.sort(this.sortHistoryByDate);\r\n this.list_local.sort(this.sortHistoryByDate);\r\n this.list_intel.sort(this.sortHistoryByDate);\r\n this.list_noCase.sort(this.sortHistoryByDate);\r\n this.currentCaseId = currentCaseId;\r\n this.editCommentObserver = editCommentObserver;\r\n this.openNote = openNote;\r\n\r\n this.noHistory = list.length === 0;\r\n // this.noHistory = true;\r\n }\r\n sortHistoryByDate(a: JudgmentHistory, b: JudgmentHistory): number {\r\n const dateA = (a.judg_date_year + 1911) + '/' + a.judg_date_month.toString().padStart(2, '0') + '/' + a.judg_date_day.toString().padStart(2, '0');\r\n const dateB = (b.judg_date_year + 1911) + '/' + b.judg_date_month.toString().padStart(2, '0') + '/' + b.judg_date_day.toString().padStart(2, '0');\r\n return dateB.localeCompare(dateA);\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n // this.noteData = null;\r\n // this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n\r\n checkCursorClickId(ev: any, id: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.id === id;\r\n });\r\n }\r\n // @HostListener('click', ['$event']) clickCheck(ev: MouseEvent) {\r\n // if (this.editingHistory\r\n // && !this.checkCursorClickId(ev, this.editingHistory.id)) {\r\n // const trimText = this.editingHistory.edit_comment.trim();\r\n // if (this.editingHistory.comment !== trimText) {\r\n // this.editingHistory.comment = trimText;\r\n // // 發送S更新\r\n // this.editCommentObserver(this.editingHistory.case_id, this.editingHistory.comment).subscribe();\r\n // }\r\n // this.editingHistory = null;\r\n // }\r\n // }\r\n\r\n editComment(item: JudgmentHistory): void {\r\n if (this.disableEdit) {\r\n return;\r\n }\r\n // if (this.editingHistory === item) {\r\n // return;\r\n // }\r\n // this.editingHistory = item;\r\n // item.edit_comment = item.comment;\r\n // if (!item.edit_comment) {\r\n // item.edit_comment = '';\r\n // }\r\n // setTimeout(() => {\r\n // document.getElementById(item.id + '-input').focus();\r\n // });\r\n\r\n this.openCommentPopup(item);\r\n }\r\n\r\n private openCommentPopup(item: JudgmentHistory): void {\r\n this.dialogRef.disableClose = true;\r\n const componentRef = this.commentPopupOpenerService.openPopup('案件備註', item.comment);\r\n componentRef.instance.submit.subscribe(newComment => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n const trimText = newComment.trim();\r\n if (item.edit_comment !== trimText) {\r\n item.edit_comment = trimText;\r\n item.comment = trimText;\r\n // console.log('案件備註');\r\n\r\n // 發送S更新\r\n this.editCommentObserver(item.case_id, item.comment).subscribe(() => {\r\n // 關閉彈窗\r\n componentRef.instance.closePopup();\r\n });\r\n }\r\n });\r\n\r\n componentRef.onDestroy(() => {\r\n this.dialogRef.disableClose = false;\r\n });\r\n }\r\n setSfyUrl(url: string): void {\r\n this.sfyUrl = this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
歷審裁判
\r\n \r\n
\r\n \r\n
\r\n
\r\n
回報問題
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
0\">\r\n
\r\n
\r\n
\r\n
{{item.case_text}}
\r\n
(案件目前繫屬法院及案號,或是該篇判決司法院未上傳)
\r\n
(案件目前上訴到最高法院審理中)
\r\n
(案件尚待更新中)
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
本件尚無歷審裁判資料
\r\n
\r\n
\r\n
\r\n\r\n\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
{{item.edit_comment}}
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{courtName}}
\r\n
\r\n
\r\n
屬性
\r\n
\r\n
裁判日期
\r\n
\r\n
倉庫
\r\n
\r\n
案件備註
\r\n
\r\n
{{item.case_text + (item.no_data?'(無資料)':'')}}\r\n
\r\n
\r\n
\r\n
\r\n
{{item.judg_date}}
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { JudgmentHistoryPopupComponent } from './judgment-history-popup.component';\r\n// import { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PipeSafeUrlModule } from 'projects/lwlib/src/pipe-safe-url/pipe-safe-url.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n JudgmentHistoryPopupComponent,\r\n // SafeUrlPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n PipeSafeUrlModule,\r\n // MaskFullScreenModule\r\n FramePopupCloseModule,\r\n ],\r\n exports: [JudgmentHistoryPopupComponent]\r\n})\r\nexport class JudgmentHistoryPopupModule { }\r\n","import { JudgmentCourtId } from 'projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-court-id.enum';\r\nimport { JudgmentType } from 'projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-type.enum';\r\nimport { JudgmentProperty } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment-property';\r\nimport { CategoryTypeId } from '../category/category-type-id.enum';\r\nimport { SubcategoryTypeId } from '../category/subcategory-type-id.enum';\r\nimport { Issue } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue';\r\nimport { CaseTag } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/case-tag';\r\nimport { SummaryTypeItem } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-item';\r\nimport { ShareInfo } from 'projects/desktop/src/app/root/root-share/share-info';\r\nimport { Category } from '../category/category';\r\nimport { Subcategory } from '../category/subcategory';\r\nimport { NoteSummaryListType } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/note-summary-list-type';\r\nimport { Tool } from '../tool/tool';\r\nimport { BookmarkType } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/bookmark-type';\r\nimport { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\nimport { CaseName } from '../case-type/case-name';\r\nimport { CourtId } from '../case-type/court-id.enum';\r\nimport { IndictmentCourtId } from 'projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/indictment-court-id.enum';\r\nimport { TeamNoteStatus } from '../team-note-status-popup/team-note-status';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { TeamNoteStatusId } from '../team-note-status-popup/team-note-status-id.enum';\r\nimport { TeamNoteCopyLog } from '../team-note-download-log-popup/team-note-copy-log';\r\nimport { CheckInDataJudgmentCase } from '../check-in/check-in-data-judgment-case';\r\nimport { CheckInJudgment } from '../check-in/check-in-judgment';\r\nimport { JudgmentService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment.service';\r\nimport { JudgmentHistory } from 'projects/desktop/src/app/root/root-note-work-judgment/judgment-history';\r\nimport { LawRuleSource } from '../law-rule/law-rule-source';\r\nimport { SummarySave } from '../summary-list/summary-save';\r\nimport { BookmarkSave } from '../bookmark/bookmark-save';\r\nimport { PropertyId } from '../case-type/property-id.enum';\r\nimport { LawRuleCaseRelate } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/law-rule-case-relate';\r\nimport { JudgmentCase as OldJudgmentCase } from \"projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment-case\";\r\nimport { TemplateRef } from '@angular/core';\r\nexport class JudgmentCase {\r\n\r\n /** ************************************************* */\r\n // 基本案件訊息\r\n /** ************************************************* */\r\n\r\n /** 案件種類(裁判、起訴書) */\r\n case_base: 'judgment' | 'indictment';\r\n\r\n // 序號, 倉庫顯示用\r\n sn: number;\r\n // 案件ID\r\n case_id: string;\r\n // 司法院案件連結\r\n sfy_url: string;\r\n // 裁判種類, 0:民事, 1:刑事, 2:行政, 3:其他, 4:起訴書\r\n type: JudgmentType = JudgmentType.Civil;\r\n // get裁判種類字串\r\n get typeName(): string { return JudgmentType[this.type]; }\r\n // get裁判種類字串\r\n get typeString(): string { return JudgmentType[this.type]; }\r\n // 法院ID\r\n court_id: JudgmentCourtId;\r\n // get法院ID\r\n get courtIdString(): string { return JudgmentCourtId[this.court_id]; }\r\n // 法院中文名稱\r\n court: string;\r\n // 法院中文名稱\r\n courtName: string;\r\n // 案號\r\n case_number: string[];\r\n // 案由\r\n case_reason: string;\r\n // 裁判日期, [年, 月, 日]\r\n judg_date: number[];\r\n // 裁判日期 [年, 月, 日](起訴書用)\r\n case_date: number[];\r\n // 裁判日期\r\n judgDateString: string;\r\n // 屬性:0:判決 1:裁定 2:其他\r\n property: JudgmentProperty | '起訴書' | '追加起訴書' | '聲請簡易判決處刑書' | '併辦意旨書' | '移送併辦意旨書' | '其他';\r\n // 起訴書用屬性\r\n case_type: '起訴書' | '追加起訴書' | '聲請簡易判決處刑書' | '併辦意旨書' | '移送併辦意旨書' | '其他';\r\n // get屬性字串\r\n get propertyString(): string { return JudgmentProperty[this.property]; }\r\n propertyIconStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n propertyId: PropertyId;\r\n propertyIdString: string;\r\n // 歷審裁判\r\n historyList?: JudgmentHistory[];\r\n // 案件法條\r\n relateLawArticle?: LawRuleSource[];\r\n // 案件法條\r\n relate_law_rule_list: LawRuleCaseRelate[];\r\n // 內容預覽\r\n preview_html: string;\r\n // 模板,全面檢索、混合顯示用\r\n template: TemplateRef;\r\n\r\n /** ************************************************* */\r\n // 筆記基本訊息\r\n /** ************************************************* */\r\n // 作者會員ID\r\n member_id: string;\r\n // 筆記ID\r\n note_id: string;\r\n // 是否已經收藏到倉庫\r\n get collected(): boolean { return this.edit_date > 0; }\r\n // 是否有筆記紀錄, 同收藏\r\n has_note: boolean;\r\n // 類別\r\n category: Category;\r\n // 類別種類id\r\n category_type: CategoryTypeId;\r\n // 類別名字\r\n category_text: string;\r\n // 類別icon style\r\n categoryIconStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n // 是否未分類\r\n isUncategory: boolean;\r\n // 項目\r\n subcategory: Subcategory;\r\n // 項目種類id\r\n subcategory_type: SubcategoryTypeId;\r\n // 項目名字\r\n subcategory_text: string;\r\n // 項目icon style\r\n subcategoryIconStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n // 是否未分項\r\n isUnsubcategory: boolean;\r\n // 筆記名稱\r\n file_subject: string;\r\n // 筆記案名\r\n file_subject2: string;\r\n // 筆記最後開啟時間\r\n note_open_time: number;\r\n noteOpenTimeString: string = '';\r\n // 筆記編輯存檔日期\r\n edit_date: number;\r\n editDateTimeString: string = '';\r\n\r\n\r\n /** ************************************************* */\r\n // 筆記內容\r\n /** ************************************************* */\r\n // 隨意備註\r\n comment: string;\r\n // 爭點清單\r\n issue_list: Issue[] = [];\r\n // 有簡答的爭點清單\r\n hasAnswerIssueList: Issue[] = [];\r\n // 案件標籤\r\n case_tag_list: CaseTag[] = [];\r\n // 摘要數量\r\n summary_type_item_list: SummaryTypeItem[] = [];\r\n // 摘要紀錄\r\n summary: SummarySave[] = [];\r\n // 倉庫用,檢查是否取過摘要\r\n isGetSummary: boolean = false;\r\n // 分享資訊\r\n share_info: ShareInfo;\r\n // 是否分享中\r\n isShared: boolean;\r\n // 打卡紀錄\r\n check_in_data: CheckInDataJudgmentCase;\r\n // 打卡狀態class\r\n checkInStatusClassName: string = '';\r\n // 書籤\r\n bookmark: BookmarkSave[] = [];\r\n\r\n\r\n\r\n /** ************************************************* */\r\n // 團隊筆記訊息\r\n /** ************************************************* */\r\n // 作者頭像style\r\n authorPictureStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n // 作者團隊id\r\n author_team_id: string = '';\r\n // 作者團隊成員id\r\n author_team_member_id: string = '';\r\n // 作者團隊成員名稱\r\n author_team_member_name: string = '';\r\n // 作者團隊成員頭像\r\n author_team_member_picture: string = '';\r\n // 團隊分享檢視次數\r\n team_share_view_count: number;\r\n // 捷徑\r\n is_shortcut: boolean = false;\r\n // 自己團隊成員ID\r\n team_member_id: string;\r\n // 自己團隊成員名稱\r\n team_member_name: string;\r\n // 自己團隊成員頭像\r\n team_member_picture: string;\r\n // 案件討論\r\n discuss_count: number;\r\n // 案件討論已讀次數\r\n discuss_read_count: number = 0;\r\n // 案件討論未讀次數\r\n discuss_unread_count: number;\r\n // 團隊筆記評定狀態\r\n team_note_publish_status: TeamNoteStatus[];\r\n // 團隊筆記評定狀態\r\n team_publish_status: TeamNoteStatus[] = [];\r\n // 團筆記最新評定狀態\r\n last_team_publish_status: TeamNoteStatus;\r\n // 團隊筆記最新評定狀態ID\r\n get lastTeamPublishStatusId(): TeamNoteStatusId {\r\n return this.last_team_publish_status == null ? TeamNoteStatusId.Unpublished\r\n : this.last_team_publish_status.status;\r\n }\r\n // 個人倉庫有相同案件的團隊成員ID\r\n has_same_case_member_ids: string[] = [];\r\n // 個人倉庫有相同案件的團隊成員ID dict\r\n hasSameCaseMemberIdDict: { [key: string]: boolean } = {};\r\n // 團隊筆記複製紀錄\r\n team_note_copy_log: TeamNoteCopyLog[] = [];\r\n // 這筆記建立的快捷訊息 {case_type,to_member_id(團隊id),note_id(這筆記id),time(建立時間)}\r\n note_shortcuts: any[];\r\n // 團隊會議 (棄用)\r\n meet_count_total: number;\r\n // 團隊會議 (棄用)\r\n meet_count: number;\r\n\r\n /** ************************************************* */\r\n // 筆記附加訊息\r\n /** ************************************************* */\r\n judgmentService: JudgmentService;\r\n\r\n /** ************************************************* */\r\n // 更新案件基本訊息\r\n /** ************************************************* */\r\n /** 更新.裁判日期 */\r\n updateJudgeDateStrings(): void {\r\n if (this.case_base === 'judgment') {\r\n this.judgDateString = this.judg_date[0].toString()\r\n + '/' + this.judg_date[1].toString().padStart(2, '0')\r\n + '/' + this.judg_date[2].toString().padStart(2, '0');\r\n } else if (this.case_base === 'indictment') {\r\n let dates = this.judg_date;\r\n if (dates == null) {\r\n dates = this.case_date;\r\n }\r\n this.judgDateString = (dates[0] - 1911).toString()\r\n + '/' + dates[1].toString().padStart(2, '0')\r\n + '/' + dates[2].toString().padStart(2, '0');\r\n }\r\n }\r\n /** 更新.屬性ID */\r\n updatePropertyId(): void {\r\n let p = this.property;\r\n if (this.case_base == 'indictment') {\r\n if (p == null && this.case_type) {\r\n p = this.case_type;\r\n }\r\n }\r\n\r\n if (p === JudgmentProperty.Judgment) {\r\n this.propertyId = PropertyId.Judgment_Judgment;\r\n } else if (p === JudgmentProperty.Decision) {\r\n this.propertyId = PropertyId.Judgment_Decision;\r\n } else if (p === JudgmentProperty.Other) {\r\n this.propertyId = PropertyId.Judgment_Other;\r\n } else if (p === '起訴書') {\r\n this.propertyId = PropertyId.Indictment_Indictment;\r\n } else if (p === '追加起訴書') {\r\n this.propertyId = PropertyId.Indictment_AppendIndictment;\r\n } else if (p === '聲請簡易判決處刑書') {\r\n this.propertyId = PropertyId.Indictment_SimpleJudgment;\r\n } else if (p === '併辦意旨書') {\r\n this.propertyId = PropertyId.Indictment_MergeIntention;\r\n } else if (p === '移送併辦意旨書') {\r\n this.propertyId = PropertyId.Indictment_MergeIntention;\r\n } else if (p === '其他') {\r\n this.propertyId = PropertyId.Indictment_Other;\r\n }\r\n this.propertyIdString = PropertyId[this.propertyId];\r\n }\r\n /** 更新.屬性icon style */\r\n updatePropertyIconStyle(): void {\r\n this.propertyIconStyle = {} as CSSStyleDeclaration;\r\n let iconName = '';\r\n let width = null;\r\n if (this.property === JudgmentProperty.Judgment) {\r\n iconName = 'property/s8.png';\r\n } else if (this.property === JudgmentProperty.Decision) {\r\n iconName = 'property/s9.png';\r\n } else if (this.property === JudgmentProperty.Other) {\r\n iconName = 'property/s10.png';\r\n } else if (this.property === '起訴書') {\r\n iconName = 'property/s23.png';\r\n width = 46;\r\n } else if (this.property === '追加起訴書') {\r\n iconName = 'property/s22.png';\r\n width = 60;\r\n } else if (this.property === '聲請簡易判決處刑書') {\r\n iconName = 'property/s24.png';\r\n width = 60;\r\n } else if (this.property === '併辦意旨書') {\r\n iconName = 'property/s25.png';\r\n width = 60;\r\n } else if (this.property === '移送併辦意旨書') {\r\n iconName = 'property/s25.png';\r\n width = 60;\r\n } else if (this.property === '其他') {\r\n iconName = 'property/s10.png';\r\n }\r\n\r\n if (iconName) {\r\n this.propertyIconStyle.backgroundImage = `url(/assets/img/${iconName})`;\r\n if (width != null) {\r\n this.propertyIconStyle.width = `${width}px`;\r\n }\r\n }\r\n }\r\n /** 更新.歷審裁判 */\r\n updateHistory(): void {\r\n if (this.historyList) {\r\n this.historyList.forEach(h => {\r\n h.case_text = CaseName.judgmentCourtIdName[CourtId[h.court_id]]\r\n + h.case_year + '年度'\r\n + h.case_word + '字'\r\n + h.case_number + '號';\r\n if (!h.no_data) {\r\n h.judg_date = h.judg_date_year + '/' + h.judg_date_month + '/' + h.judg_date_day;\r\n h.case_property_class = CaseName.propertyIdClass[JudgmentProperty[h.case_property_id]];\r\n h.edit_comment = h.comment;\r\n }\r\n })\r\n }\r\n }\r\n /** 更新.法院名稱 */\r\n updateCourtName(): void {\r\n if (this.case_base === 'indictment') {\r\n const icid: string = IndictmentCourtId[this.court_id];\r\n const courtId = CourtId[icid];\r\n const court = CaseName.courtList.find(v => v.court_id === courtId);\r\n this.courtName = court.list_name;\r\n } else {\r\n this.courtName = this.court;\r\n }\r\n }\r\n\r\n /** ************************************************* */\r\n // 更新筆記基本訊息\r\n /** ************************************************* */\r\n /** 更新.分類icon style */\r\n updateCategoryIconStyle(): void {\r\n this.categoryIconStyle = {} as CSSStyleDeclaration;\r\n this.categoryIconStyle.backgroundImage = Category.getBackgroundImageUrl(this.category_type);\r\n }\r\n /** 更新.分項icon style */\r\n updateSubcategoryIconStyle(): void {\r\n this.subcategoryIconStyle = {} as CSSStyleDeclaration;\r\n this.subcategoryIconStyle.backgroundImage = Subcategory.getBackgroundImageUrl(this.subcategory_type);\r\n }\r\n /** 更新.爭點檢查清單 */\r\n updateAnswerIssueList(): void {\r\n this.hasAnswerIssueList = [];\r\n if (this.issue_list == null || this.issue_list.length === 0) {\r\n return;\r\n }\r\n\r\n this.hasAnswerIssueList = this.issue_list.filter(a => a.answer_text);\r\n }\r\n /** 更新.摘要class */\r\n updateSummaryItemCalssName(): void {\r\n if (this.summary_type_item_list) {\r\n this.summary_type_item_list.forEach(s => {\r\n if (s.list_type === NoteSummaryListType.Bookmark) {\r\n s.className = Tool.convertText_CamelCaseToLowerDash(BookmarkType[s.list_type].toString());\r\n } else {\r\n s.className = Tool.convertText_CamelCaseToLowerDash(SummaryTypeId[s.item_type].toString());\r\n }\r\n });\r\n }\r\n }\r\n /** 更新.開啟日期字串 */\r\n updateOpenDateString(): void {\r\n if (this.note_open_time > 0) {\r\n this.noteOpenTimeString = Tool.convertTimeTickToPastTimeText1(this.note_open_time);\r\n }\r\n }\r\n /** 更新.保存日期字串 */\r\n updateSaveDateString(): void {\r\n if (this.edit_date > 0) {\r\n this.editDateTimeString = Tool.convertTimeText(this.edit_date);\r\n }\r\n }\r\n /** 更新.打卡紀錄 */\r\n updateCheckin(): void {\r\n if (this.check_in_data) {\r\n this.checkInStatusClassName = 'gray';\r\n if (CheckInJudgment.statusClassNameDict[this.check_in_data.last_check_in_status]) {\r\n this.checkInStatusClassName = CheckInJudgment.statusClassNameDict[this.check_in_data.last_check_in_status];\r\n }\r\n }\r\n }\r\n /** 更新.案件標籤 */\r\n updateCaseTag(): void {\r\n if (this.case_tag_list == null) {\r\n this.case_tag_list = [];\r\n }\r\n this.case_tag_list.sort((a, b) => a.sn - b.sn);\r\n }\r\n /** 更新.爭點 */\r\n updateIssue(): void {\r\n if (this.issue_list == null) {\r\n this.issue_list = [];\r\n }\r\n if (this.issue_list.length > 0) {\r\n if (this.issue_list[0].constructor != Issue) {\r\n this.issue_list = this.issue_list.map(issue => Serializable.extend(new Issue(), issue));\r\n }\r\n }\r\n }\r\n\r\n /** ************************************************* */\r\n // 更新筆記團隊訊息\r\n /** ************************************************* */\r\n updateAuthorPicture(): void {\r\n this.authorPictureStyle.backgroundImage = `url(${this.team_member_picture})`;\r\n }\r\n\r\n updateShareStatus(): void {\r\n this.isShared = false;\r\n this.team_share_view_count = 0;\r\n if (this.share_info\r\n && this.share_info.is_valid\r\n && this.share_info.share_id) {\r\n this.isShared = true;\r\n this.team_share_view_count = this.share_info.click_count;\r\n }\r\n }\r\n\r\n updateTeamNotePublish(): void {\r\n this.team_publish_status = [];\r\n if (this.team_note_publish_status != null\r\n && this.team_note_publish_status.length > 0) {\r\n for (const item of this.team_note_publish_status) {\r\n this.team_publish_status.push(\r\n Serializable.extendObjectFromResponseObject(\r\n new TeamNoteStatus(), item\r\n )\r\n );\r\n }\r\n\r\n for (const item of this.team_publish_status) {\r\n item.updateData();\r\n }\r\n }\r\n if (this.team_publish_status.length > 0) {\r\n this.last_team_publish_status = this.team_publish_status[this.team_publish_status.length - 1];\r\n }\r\n }\r\n\r\n updateHasSameCaseMemberIdDict(): void {\r\n this.hasSameCaseMemberIdDict = {};\r\n if (this.has_same_case_member_ids != null) {\r\n for (const memberId of this.has_same_case_member_ids) {\r\n this.hasSameCaseMemberIdDict[memberId] = true;\r\n }\r\n }\r\n }\r\n\r\n updateAll(): void {\r\n // 更新.裁判日期\r\n this.updateJudgeDateStrings();\r\n // 更新.屬性ID\r\n this.updatePropertyId();\r\n // 更新.屬性icon style\r\n this.updatePropertyIconStyle();\r\n // 更新.歷審裁判\r\n this.updateHistory();\r\n\r\n // 更新.分類icon style\r\n this.updateCategoryIconStyle();\r\n // 更新.分項icon style\r\n this.updateSubcategoryIconStyle();\r\n // 更新.爭點檢查清單\r\n this.updateAnswerIssueList();\r\n // 更新.摘要class\r\n this.updateSummaryItemCalssName();\r\n // 更新.開啟日期字串\r\n this.updateOpenDateString();\r\n // 更新.保存日期字串\r\n this.updateSaveDateString();\r\n // 更新.法院名稱\r\n this.updateCourtName();\r\n // 更新.打卡紀錄\r\n this.updateCheckin();\r\n // 更新.案件標籤\r\n this.updateCaseTag();\r\n // 更新.爭點\r\n this.updateIssue();\r\n\r\n this.updateAuthorPicture();\r\n this.updateShareStatus();\r\n this.updateTeamNotePublish();\r\n this.updateHasSameCaseMemberIdDict();\r\n }\r\n\r\n\r\n\r\n\r\n private static updateBase(\r\n j: JudgmentCase,\r\n setValueCase: (name: string) => void,\r\n setValueNote: (name: string) => void\r\n ): void {\r\n // 案件設定\r\n j.case_base = 'judgment';\r\n setValueCase('case_base');\r\n setValueCase('case_id');\r\n setValueCase('sfy_url');\r\n setValueCase('type');\r\n setValueCase('court_id');\r\n setValueCase('court');\r\n j.updateCourtName();\r\n setValueCase('case_number');\r\n setValueCase('case_reason');\r\n setValueCase('judg_date');\r\n setValueCase('case_date');\r\n j.updateJudgeDateStrings();\r\n setValueCase('property');\r\n setValueCase('case_type');\r\n\r\n j.updatePropertyIconStyle();\r\n setValueCase('preview_html');\r\n setValueCase('relate_law_rule_list');\r\n\r\n\r\n // 筆記設定\r\n setValueNote('note_id');\r\n setValueNote('category_type');\r\n setValueNote('category_text');\r\n j.updateCategoryIconStyle();\r\n j.isUncategory = j.category_text == null;\r\n setValueNote('subcategory_type');\r\n setValueNote('subcategory_text');\r\n j.updateSubcategoryIconStyle();\r\n j.isUnsubcategory = j.subcategory_text == null;\r\n setValueNote('file_subject');\r\n setValueNote('file_subject2');\r\n setValueNote('note_open_time');\r\n setValueNote('edit_date');\r\n j.updateSaveDateString();\r\n\r\n setValueNote('comment');\r\n setValueNote('issue_list');\r\n j.updateAnswerIssueList();\r\n setValueNote('case_tag_list');\r\n setValueNote('summary_type_item_list');\r\n setValueNote('summary');\r\n setValueNote('share_info');\r\n j.updateShareStatus();\r\n setValueNote('check_in_data');\r\n j.updateCheckin();\r\n\r\n setValueNote('author_team_id');\r\n setValueNote('author_team_member_id');\r\n setValueNote('author_team_member_name');\r\n setValueNote('author_team_member_picture');\r\n j.updateAuthorPicture();\r\n setValueNote('is_shortcut');\r\n setValueNote('team_member_id');\r\n setValueNote('team_member_name');\r\n setValueNote('team_member_picture');\r\n setValueNote('discuss_count');\r\n setValueNote('discuss_read_count');\r\n setValueNote('discuss_unread_count');\r\n setValueNote('team_note_publish_status');\r\n j.updateTeamNotePublish();\r\n setValueNote('has_same_case_member_ids');\r\n j.updateHasSameCaseMemberIdDict();\r\n setValueNote('team_note_copy_log');\r\n\r\n j.updateAll();\r\n }\r\n\r\n static createFromOldJudgmentCase(oldJudgmentCase: OldJudgmentCase): JudgmentCase {\r\n const c = oldJudgmentCase;\r\n if (c.case_base == null) {\r\n c.case_base = 'judgment';\r\n }\r\n\r\n const j = new JudgmentCase();\r\n\r\n const setValueCase = (name: string) => { j[name] = c[name]; }\r\n const setValueNote = (name: string) => setValueCase(name);\r\n\r\n this.updateBase(\r\n j,\r\n setValueCase,\r\n setValueNote\r\n );\r\n\r\n return j;\r\n }\r\n static createFromNote(\r\n member_id: string,\r\n judgmentCase: any,\r\n judgmentNote: any,\r\n ): JudgmentCase {\r\n const c = judgmentCase;\r\n const n = judgmentNote;\r\n const j = new JudgmentCase();\r\n const setValueCase = (name: string) => { j[name] = c[name]; }\r\n const setValueNote = (name: string) => { j[name] = n[name]; }\r\n\r\n j.member_id = member_id;\r\n j.has_note = n.edit_date > 0;\r\n\r\n this.updateBase(\r\n j,\r\n setValueCase,\r\n setValueNote\r\n );\r\n\r\n return j;\r\n }\r\n\r\n\r\n}","import { CourtId } from '../case-type/court-id.enum';\r\nimport { JudicialInterpretType } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-type.enum';\r\nimport { JudicialInterpretCaseType } from 'projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-case-type.enum';\r\nimport { JudicialInterpretProperty } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-property.enum';\r\nimport { JudicialInterpretCaseData } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-case-data';\r\nimport { LawRuleCaseRelate } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/law-rule-case-relate';\r\nimport { CategoryTypeId } from '../category/category-type-id.enum';\r\nimport { SubcategoryTypeId } from '../category/subcategory-type-id.enum';\r\nimport { Issue } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/issue';\r\nimport { CaseTag } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/case-tag';\r\nimport { SummaryTypeItem } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-item';\r\nimport { ShareInfo } from 'projects/desktop/src/app/root/root-share/share-info';\r\nimport { Category } from '../category/category';\r\nimport { Subcategory } from '../category/subcategory';\r\nimport { NoteSummaryListType } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/note-summary-list-type';\r\nimport { Tool } from '../tool/tool';\r\nimport { BookmarkType } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/bookmark-type';\r\nimport { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\nimport { TemplateRef } from '@angular/core';\r\nimport { TeamNoteStatus } from '../team-note-status-popup/team-note-status';\r\nimport { TeamNoteStatusId } from '../team-note-status-popup/team-note-status-id.enum';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { TeamNoteCopyLog } from '../team-note-download-log-popup/team-note-copy-log';\r\nimport { CheckInDataJudgmentCase } from '../check-in/check-in-data-judgment-case';\r\nimport { CheckInJudgment } from '../check-in/check-in-judgment';\r\nimport { JudicialInterpretCourtId } from 'projects/desktop/src/app/root/root-main/child-content-judicial-interpret-search/judicial-interpret-condition/judicial-interpret-court-id.enum';\r\nimport { SummarySave } from '../summary-list/summary-save';\r\nimport { LawRuleSource } from '../law-rule/law-rule-source';\r\nimport { JudicialInterpretCase as OldJudicialInterpretCase } from \"projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-case\";\r\nimport { PropertyId } from '../case-type/property-id.enum';\r\nimport { JudicialInterpretPropertyIcon } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret-property-icon.enum';\r\n\r\nexport class JudicialInterpretCase {\r\n\r\n /** ************************************************* */\r\n // 基本案件訊息\r\n /** ************************************************* */\r\n // 序號, 倉庫顯示用\r\n sn: number;\r\n // 案件ID\r\n case_id: string;\r\n // 司法院案件連結\r\n sfy_url: string;\r\n // 檢索條件種類分類名稱\r\n case_type_name: string;\r\n // 法院ID\r\n court_id: JudicialInterpretCourtId;\r\n get courtIdString() { return JudicialInterpretCourtId[this.court_id]; }\r\n // 法院名稱\r\n court: string;\r\n // 案號\r\n case_number: string[];\r\n caseName: string;\r\n // 日期 (裁判、決議 ...)\r\n dateString: string;\r\n\r\n // 原司法院種類\r\n type: JudicialInterpretType;\r\n get typeString(): string { return JudicialInterpretType[this.type]; }\r\n // 檢索條件種類\r\n case_type: JudicialInterpretCaseType;\r\n // get檢索條件種類字串\r\n get caseTypeString(): string { return JudicialInterpretCaseType[this.case_type]; }\r\n // 屬性\r\n property: JudicialInterpretProperty;\r\n // get屬性字串\r\n get propertyString(): string {\r\n return JudicialInterpretProperty[this.property];\r\n }\r\n /** 屬性style */\r\n propertyIconStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n // 全體用屬性ID\r\n get propertyId(): PropertyId {\r\n return PropertyId['JudicialInterpret_' + this.propertyString];\r\n }\r\n // 全體用屬性ID字串\r\n get propertyIdString(): string {\r\n return 'JudicialInterpret_' + this.propertyString;\r\n }\r\n // 屬性class\r\n propertyClassName: string;\r\n // 案件種類範本\r\n typeTemplate: TemplateRef;\r\n // 案件檢索資料\r\n case_data: JudicialInterpretCaseData;\r\n // 案件內文\r\n case_content: string[][];\r\n // 附件\r\n files: string[][];\r\n // 廢止案件\r\n is_repeal: boolean;\r\n // 停止適用案件\r\n is_stop: boolean;\r\n // 內文預覽\r\n preview_html: string;\r\n // 案件內文\r\n fulltext: string;\r\n // 相關法條\r\n relate_law_rule_list: LawRuleCaseRelate[];\r\n // get相關法條法規名稱\r\n get relate_law_rule_name_list() {\r\n return this.relate_law_rule_list.map(r => {\r\n return {\r\n name: r.name,\r\n list: r.list.map(rs => rs[1])\r\n };\r\n });\r\n }\r\n // 案件法條\r\n relateLawArticle?: LawRuleSource[];\r\n // 模板,全面檢索、混合顯示用\r\n template: TemplateRef;\r\n\r\n\r\n\r\n\r\n /** ************************************************* */\r\n // 筆記基本訊息\r\n /** ************************************************* */\r\n // 作者\r\n member_id: string;\r\n // 筆記ID\r\n note_id: string;\r\n // 是否有筆記\r\n has_note: boolean;\r\n\r\n // 類別\r\n category: Category;\r\n // 類別種類id\r\n category_type: CategoryTypeId;\r\n // 類別名字\r\n category_text: string;\r\n // 類別icon style\r\n categoryIconStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n // 是否未分類\r\n isUncategory: boolean;\r\n // 項目\r\n subcategory: Subcategory;\r\n // 項目種類id\r\n subcategory_type: SubcategoryTypeId;\r\n // 項目名字\r\n subcategory_text: string;\r\n // 項目icon style\r\n subcategoryIconStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n // 是否未分項\r\n isUnsubcategory: boolean;\r\n // 筆記名稱\r\n file_subject: string;\r\n // 筆記案名\r\n file_subject2: string;\r\n // 筆記最後開啟時間\r\n note_open_time: number;\r\n noteOpenTimeString: string;\r\n // 筆記編輯存檔日期\r\n edit_date: number;\r\n editDateTimeString: string;\r\n\r\n /** ************************************************* */\r\n // 筆記內容\r\n /** ************************************************* */\r\n // 隨意備註\r\n comment: string;\r\n // 爭點清單\r\n issue_list: Issue[] = [];\r\n // 爭點清單\r\n issueList: Issue[] = [];\r\n // 有簡答的爭點清單\r\n hasAnswerIssueList: Issue[] = [];\r\n // 案件標籤\r\n case_tag_list: CaseTag[] = [];\r\n // 案件標籤\r\n caseTagList: CaseTag[] = [];\r\n // 摘要數量\r\n summary_type_item_list: SummaryTypeItem[] = [];\r\n // 摘要紀錄\r\n summary: SummarySave[] = [];\r\n summary_list: SummarySave[] = [];\r\n\r\n // 是否取過摘要\r\n isGetSummary: boolean = false;\r\n // 分享資訊\r\n share_info: ShareInfo;\r\n // 是否分享中\r\n isShared: boolean;\r\n // 打卡紀錄\r\n check_in_data: CheckInDataJudgmentCase;\r\n // 打卡狀態class\r\n checkInStatusClassName: string = '';\r\n\r\n\r\n\r\n /** ************************************************* */\r\n // 團隊筆記訊息\r\n /** ************************************************* */\r\n // 作者頭像style\r\n authorPictureStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n // 作者團隊id\r\n author_team_id: string = '';\r\n // 作者團隊成員id\r\n author_team_member_id: string = '';\r\n // 作者團隊成員名稱\r\n author_team_member_name: string = '';\r\n // 作者團隊成員頭像\r\n author_team_member_picture: string = '';\r\n // 團隊分享檢視次數\r\n team_share_view_count: number;\r\n // 捷徑\r\n is_shortcut: boolean = false;\r\n // 自己團隊成員ID\r\n team_member_id: string;\r\n // 自己團隊成員名稱\r\n team_member_name: string;\r\n // 自己團隊成員頭像\r\n team_member_picture: string;\r\n // 案件討論\r\n discuss_count: number;\r\n // 案件討論已讀次數\r\n discuss_read_count: number = 0;\r\n // 案件討論未讀次數\r\n discuss_unread_count: number;\r\n // 團隊筆記評定狀態\r\n team_note_publish_status: TeamNoteStatus[];\r\n // 團隊筆記評定狀態\r\n team_publish_status: TeamNoteStatus[] = [];\r\n // 團筆記最新評定狀態\r\n last_team_publish_status: TeamNoteStatus;\r\n // 團隊筆記最新評定狀態ID\r\n get lastTeamPublishStatusId(): TeamNoteStatusId {\r\n return this.last_team_publish_status == null ? TeamNoteStatusId.Unpublished\r\n : this.last_team_publish_status.status;\r\n }\r\n // 個人倉庫有相同案件的團隊成員ID\r\n has_same_case_member_ids: string[] = [];\r\n // 個人倉庫有相同案件的團隊成員ID dict\r\n hasSameCaseMemberIdDict: { [key: string]: boolean } = {};\r\n // 團隊筆記複製紀錄\r\n team_note_copy_log: TeamNoteCopyLog[] = [];\r\n // 這筆記建立的快捷訊息 {case_type,to_member_id(團隊id),note_id(這筆記id),time(建立時間)}\r\n note_shortcuts: any[];\r\n // 團隊會議 (棄用)\r\n meet_count_total: number;\r\n // 團隊會議 (棄用)\r\n meet_count: number;\r\n\r\n\r\n\r\n /** ************************************************* */\r\n // 筆記附加訊息\r\n /** ************************************************* */\r\n data: {\r\n overwrite_property: string,\r\n append_property: string\r\n };\r\n\r\n\r\n /** ************************************************* */\r\n // 更新案件基本訊息\r\n /** ************************************************* */\r\n updateCaseDateString(): void {\r\n // 民國\r\n const year = this.case_data.date_year;\r\n let month = '?';\r\n if (this.case_data.date_month > 0) {\r\n month = this.case_data.date_month.toString().padStart(2, '0');\r\n }\r\n let day = '?';\r\n if (this.case_data.date_day > 0) {\r\n day = this.case_data.date_day.toString().padStart(2, '0');\r\n }\r\n\r\n this.dateString = `${year}/${month}/${day}`;\r\n }\r\n updateCaseName(): void {\r\n this.caseName = '';\r\n if (this.propertyId == PropertyId.JudicialInterpret_Unified\r\n || this.propertyId == PropertyId.JudicialInterpret_Solve\r\n || this.propertyId == PropertyId.JudicialInterpret_Yuan\r\n || this.propertyId == PropertyId.JudicialInterpret_YuanSolve\r\n ) {\r\n this.caseName = this.case_data.case_word + '字第'\r\n + this.case_data.case_number + '號'\r\n + (this.case_data.case_title || '');\r\n }\r\n else if (this.propertyId == PropertyId.JudicialInterpret_Explain) {\r\n this.caseName = this.case_data.case_word + '字第'\r\n + this.case_data.case_number + '號';\r\n if (this.case_data.case_title) {\r\n this.caseName += '\\n' + this.case_data.case_title;\r\n }\r\n }\r\n else if (this.propertyId == PropertyId.JudicialInterpret_Reject) {\r\n this.caseName = this.case_data.meet_number;\r\n }\r\n else if (this.propertyId == PropertyId.JudicialInterpret_Precedent\r\n || this.propertyId == PropertyId.JudicialInterpret_Judgment\r\n || this.propertyId == PropertyId.JudicialInterpret_JudgmentSeuperme\r\n || this.propertyId == PropertyId.JudicialInterpret_Reference\r\n || this.propertyId == PropertyId.JudicialInterpret_Discipline\r\n || this.propertyId == PropertyId.JudicialInterpret_Grand\r\n || this.propertyId == PropertyId.JudicialInterpret_XF38\r\n || this.propertyId == PropertyId.JudicialInterpret_XF39\r\n || this.propertyId == PropertyId.JudicialInterpret_XF40\r\n ) {\r\n this.caseName = this.case_data.case_year + '年度'\r\n + this.case_data.case_word + '字第'\r\n + this.case_data.case_number + '號';\r\n }\r\n else if (this.propertyId == PropertyId.JudicialInterpret_Resolution\r\n || this.propertyId == PropertyId.JudicialInterpret_Seminar) {\r\n this.caseName = this.case_data.meet_title;\r\n }\r\n else if (this.propertyId == PropertyId.JudicialInterpret_Execute) {\r\n this.caseName = this.case_data.case_name;\r\n }\r\n\r\n }\r\n /** 更新.屬性icon style */\r\n updatePropertyIconStyle(): void {\r\n this.propertyIconStyle = {} as CSSStyleDeclaration;\r\n const iconName = `property/${JudicialInterpretPropertyIcon[this.propertyString]}`;\r\n let width = null;\r\n\r\n\r\n if (this.property == JudicialInterpretProperty.Unified\r\n || this.property == JudicialInterpretProperty.Solve\r\n || this.property == JudicialInterpretProperty.Yuan\r\n || this.property == JudicialInterpretProperty.Explain\r\n || this.property == JudicialInterpretProperty.Precedent\r\n || this.property == JudicialInterpretProperty.Judgment\r\n || this.property == JudicialInterpretProperty.JudgmentSeuperme\r\n || this.property == JudicialInterpretProperty.Resolution\r\n || this.property == JudicialInterpretProperty.Discipline) {\r\n this.propertyIconStyle.width = '37px';\r\n }\r\n else if (\r\n this.property == JudicialInterpretProperty.YuanSolve\r\n || this.property == JudicialInterpretProperty.Reject\r\n || this.property == JudicialInterpretProperty.Seminar\r\n ) {\r\n this.propertyIconStyle.width = '48px';\r\n }\r\n else if (\r\n this.property == JudicialInterpretProperty.Reference\r\n ) {\r\n this.propertyIconStyle.width = '60px';\r\n }\r\n\r\n if (iconName) {\r\n this.propertyIconStyle.backgroundImage = `url(/assets/img/${iconName})`;\r\n if (width != null) {\r\n this.propertyIconStyle.width = `${width}px`;\r\n }\r\n }\r\n }\r\n\r\n /** ************************************************* */\r\n // 更新筆記基本訊息\r\n /** ************************************************* */\r\n\r\n /** 更新.分類icon style */\r\n updateCategoryIconStyle(): void {\r\n this.categoryIconStyle = {} as CSSStyleDeclaration;\r\n this.categoryIconStyle.backgroundImage = Category.getBackgroundImageUrl(this.category_type);\r\n }\r\n /** 更新.分項icon style */\r\n updateSubcategoryIconStyle(): void {\r\n this.subcategoryIconStyle = {} as CSSStyleDeclaration;\r\n this.subcategoryIconStyle.backgroundImage = Subcategory.getBackgroundImageUrl(this.subcategory_type);\r\n }\r\n updateAnswerIssueList(): void {\r\n this.hasAnswerIssueList = [];\r\n if (this.issue_list == null || this.issue_list.length === 0) {\r\n return;\r\n }\r\n\r\n this.hasAnswerIssueList = this.issue_list.filter(a => a.issue_text);\r\n }\r\n /** 更新.開啟日期字串 */\r\n updateOpenDateString(): void {\r\n if (this.note_open_time > 0) {\r\n this.noteOpenTimeString = Tool.convertTimeTickToPastTimeText1(this.note_open_time);\r\n }\r\n }\r\n updateSummaryItemCalssName(): void {\r\n if (this.summary_type_item_list) {\r\n this.summary_type_item_list.forEach(s => {\r\n if (s.list_type === NoteSummaryListType.Bookmark) {\r\n s.className = Tool.convertText_CamelCaseToLowerDash(BookmarkType[s.list_type].toString());\r\n } else {\r\n s.className = Tool.convertText_CamelCaseToLowerDash(SummaryTypeId[s.item_type].toString());\r\n }\r\n });\r\n }\r\n }\r\n updateSummary(): void {\r\n if (this.summary == null && this.summary_list != null) {\r\n this.summary = this.summary_list;\r\n }\r\n }\r\n updateSaveDateString(): void {\r\n if (this.edit_date > 0) {\r\n this.editDateTimeString = Tool.convertTimeText(this.edit_date);\r\n }\r\n }\r\n updateCheckin(): void {\r\n this.checkInStatusClassName = 'gray';\r\n if (this.check_in_data) {\r\n if (CheckInJudgment.statusClassNameDict[this.check_in_data.last_check_in_status]) {\r\n this.checkInStatusClassName = CheckInJudgment.statusClassNameDict[this.check_in_data.last_check_in_status];\r\n }\r\n }\r\n }\r\n // 更新.案件標籤\r\n updateCaseTag(): void {\r\n if (this.case_tag_list == null) {\r\n this.case_tag_list = [];\r\n }\r\n this.case_tag_list.sort((a, b) => a.sn - b.sn);\r\n }\r\n // 更新.爭點\r\n updateIssue(): void {\r\n if (this.issue_list == null) {\r\n this.issue_list = [];\r\n }\r\n if (this.issue_list.length > 0) {\r\n if (this.issue_list[0].constructor != Issue) {\r\n this.issue_list = this.issue_list.map(issue => Serializable.extend(new Issue(), issue));\r\n }\r\n }\r\n }\r\n\r\n updateOpenNoteTimeString(): void {\r\n if (this.note_open_time > 0) {\r\n this.noteOpenTimeString = Tool.convertTimeText(this.note_open_time);\r\n }\r\n }\r\n\r\n /** ************************************************* */\r\n // 更新筆記團隊訊息\r\n /** ************************************************* */\r\n updateAuthorPicture(): void {\r\n this.authorPictureStyle.backgroundImage = `url(${this.team_member_picture})`;\r\n }\r\n updateShareStatus(): void {\r\n this.isShared = false;\r\n this.team_share_view_count = 0;\r\n if (this.share_info\r\n && this.share_info.is_valid\r\n && this.share_info.share_id) {\r\n this.isShared = true;\r\n this.team_share_view_count = this.share_info.click_count;\r\n }\r\n }\r\n updateTeamNotePublish(): void {\r\n this.team_publish_status = [];\r\n if (this.team_note_publish_status != null\r\n && this.team_note_publish_status.length > 0) {\r\n for (const item of this.team_note_publish_status) {\r\n this.team_publish_status.push(\r\n Serializable.extendObjectFromResponseObject(\r\n new TeamNoteStatus(), item\r\n )\r\n );\r\n }\r\n\r\n for (const item of this.team_publish_status) {\r\n item.updateData();\r\n }\r\n }\r\n if (this.team_publish_status.length > 0) {\r\n this.last_team_publish_status = this.team_publish_status[this.team_publish_status.length - 1];\r\n }\r\n }\r\n updateHasSameCaseMemberIdDict(): void {\r\n this.hasSameCaseMemberIdDict = {};\r\n if (this.has_same_case_member_ids) {\r\n for (const memberId of this.has_same_case_member_ids) {\r\n this.hasSameCaseMemberIdDict[memberId] = true;\r\n }\r\n }\r\n }\r\n updateTeamNoteCopyLog(): void {\r\n if (this.team_note_copy_log == null) {\r\n this.team_note_copy_log = [];\r\n }\r\n if (this.team_note_copy_log.some(v => !(v instanceof TeamNoteCopyLog))) {\r\n this.team_note_copy_log = this.team_note_copy_log\r\n .map(v => Serializable.extend(new TeamNoteCopyLog(), v));\r\n }\r\n this.team_note_copy_log.forEach(v => {\r\n v.updateText()\r\n });\r\n }\r\n\r\n updateAll(): void {\r\n // // 更新.裁判日期\r\n // this.updateJudgeDateStrings();\r\n // // 更新.屬性ID\r\n // this.updatePropertyId();\r\n // 更新.屬性icon style\r\n this.updatePropertyIconStyle();\r\n\r\n // 更新.分類icon style\r\n this.updateCategoryIconStyle();\r\n // 更新.分項icon style\r\n this.updateSubcategoryIconStyle();\r\n // 更新.爭點檢查清單\r\n this.updateAnswerIssueList();\r\n // 更新.摘要class\r\n this.updateSummaryItemCalssName();\r\n //\r\n this.updateSummary();\r\n // 更新.開啟日期字串\r\n this.updateOpenDateString();\r\n // 更新.保存日期字串\r\n this.updateSaveDateString();\r\n // // 更新.法院名稱\r\n // this.updateCourtName();\r\n // 更新.打卡紀錄\r\n this.updateCheckin();\r\n // 更新.案件標籤\r\n this.updateCaseTag();\r\n // 更新.爭點\r\n this.updateIssue();\r\n\r\n this.updateAuthorPicture();\r\n this.updateShareStatus();\r\n this.updateTeamNotePublish();\r\n this.updateHasSameCaseMemberIdDict();\r\n this.updateTeamNoteCopyLog();\r\n }\r\n\r\n\r\n private static updateBase(\r\n j: JudicialInterpretCase,\r\n setValueCase: (name: string) => void,\r\n setValueNote: (name: string) => void\r\n ): JudicialInterpretCase {\r\n // const j = new JudicialInterpretCase();\r\n\r\n // 案件設定\r\n setValueCase('case_id');\r\n setValueCase('sfy_url');\r\n setValueCase('type');\r\n setValueCase('court_id');\r\n setValueCase('court');\r\n // j.updateCourtName();\r\n setValueCase('case_number');\r\n setValueCase('case_reason');\r\n setValueCase('case_data');\r\n setValueCase('is_repeal');\r\n setValueCase('is_stop');\r\n setValueCase('preview_html');\r\n setValueCase('relate_law_rule_list');\r\n // setValueCase('judg_date');\r\n // j.updateJudgeDateStrings();\r\n setValueCase('property');\r\n // j.updatePropertyIconStyle();\r\n j.updateCaseName();\r\n j.updateCaseDateString();\r\n setValueCase('files');\r\n\r\n // 筆記設定\r\n // j.member_id = member_id;\r\n setValueNote('note_id');\r\n // j.has_note = n.edit_date > 0;\r\n setValueNote('category_type');\r\n setValueNote('category_text');\r\n j.updateCategoryIconStyle();\r\n j.isUncategory = j.category_text == null;\r\n setValueNote('subcategory_type');\r\n setValueNote('subcategory_text');\r\n j.updateSubcategoryIconStyle();\r\n j.isUnsubcategory = j.subcategory_text == null;\r\n setValueNote('file_subject');\r\n setValueNote('file_subject2');\r\n setValueNote('note_open_time');\r\n j.updateOpenNoteTimeString();\r\n setValueNote('edit_date');\r\n j.updateSaveDateString();\r\n\r\n setValueNote('comment');\r\n setValueNote('issue_list');\r\n j.updateAnswerIssueList();\r\n setValueNote('case_tag_list');\r\n setValueNote('summary_type_item_list');\r\n setValueNote('summary');\r\n setValueNote('share_info');\r\n j.updateShareStatus();\r\n setValueNote('check_in_data');\r\n j.updateCheckin();\r\n\r\n setValueNote('author_team_id');\r\n setValueNote('author_team_member_id');\r\n setValueNote('author_team_member_name');\r\n setValueNote('author_team_member_picture');\r\n j.updateAuthorPicture();\r\n setValueNote('is_shortcut');\r\n setValueNote('team_member_id');\r\n setValueNote('team_member_name');\r\n setValueNote('team_member_picture');\r\n setValueNote('discuss_count');\r\n setValueNote('discuss_read_count');\r\n setValueNote('discuss_unread_count');\r\n setValueNote('team_note_publish_status');\r\n j.updateTeamNotePublish();\r\n setValueNote('has_same_case_member_ids');\r\n j.updateHasSameCaseMemberIdDict();\r\n setValueNote('team_note_copy_log');\r\n\r\n j.updateAll();\r\n\r\n return j;\r\n }\r\n static createFromOldJudicialInterpretCase(\r\n oldJudicialInterpretCase: OldJudicialInterpretCase\r\n ): JudicialInterpretCase {\r\n const c = oldJudicialInterpretCase;\r\n const j = new JudicialInterpretCase();\r\n\r\n const setValueCase = (name: string) => { j[name] = c[name]; }\r\n const setValueNote = (name: string) => setValueCase(name);\r\n\r\n this.updateBase(\r\n j,\r\n setValueCase,\r\n setValueNote\r\n );\r\n\r\n return j;\r\n }\r\n static createFromNote(\r\n member_id: string,\r\n judicialInterpretCase: any,\r\n judicialInterpretNote: any,\r\n ): JudicialInterpretCase {\r\n const c = judicialInterpretCase;\r\n const n = judicialInterpretNote;\r\n const j = new JudicialInterpretCase();\r\n const setValueCase = (name: string) => {\r\n j[name] = c[name]\r\n }\r\n const setValueNote = (name: string) => {\r\n j[name] = n[name];\r\n }\r\n\r\n this.updateBase(\r\n j,\r\n setValueCase,\r\n setValueNote\r\n );\r\n\r\n return j;\r\n }\r\n}\r\n","export enum JudicialInterpretCourtCatalogId {\r\n Court,\r\n Grand,\r\n Precedent,\r\n Judgment,\r\n Resolution,\r\n Discipline,\r\n Seminar,\r\n Execute,\r\n}\r\nexport enum JudicialInterpretCourtBlockId {\r\n Court_XF,\r\n Court_Court,\r\n Court_BigJudge,\r\n Court_Reject,\r\n Grand_Normal,\r\n Precedent_Normal,\r\n Precedent_Stop,\r\n Judgment_V,\r\n Judgment_M,\r\n Judgment_A,\r\n Judgment_SupremeReference,\r\n Judgment_HighReference,\r\n Resolution_V,\r\n Resolution_M,\r\n Resolution_A,\r\n Discipline_Discipline,\r\n Seminar_V,\r\n Seminar_M,\r\n Seminar_A,\r\n Seminar_Discipline,\r\n Execute_Execute,\r\n}\r\nexport enum JudicialInterpretCourtGroupId {\r\n ctypeABC, // 0\r\n ctypeD, // 1\r\n ttypeX, // 2\r\n jtype21gc1m134, // 3\r\n jtype22gc2m1342, // 4\r\n jtype23gc3m134, // 5\r\n jtypeA, // 6\r\n jtypeB, // 7\r\n jtypeE, // 8\r\n jtype1A, // 9\r\n jtype1B, // 10\r\n jtype1E, // 11\r\n jtypeI, // 12\r\n jtypeG, // 13\r\n jtypeC01, // 14\r\n jtypeO, // 15\r\n jtypeJ, // 16\r\n jtypeH, // 17\r\n jtypeD01, // 18\r\n jtypeP, // 19\r\n jtypeR, // 20\r\n jtypeK, // 21\r\n jtypeF01, // 22\r\n jtypeQ, // 23\r\n jtypeU, // 24\r\n jtypeV, // 25\r\n jtypeS, // 26\r\n jtypeT, // 27\r\n dtypeA01, // 28\r\n dtypeB01, // 29\r\n dtypeC01, // 30\r\n jtypeL, // 31\r\n qtypeA, // 32\r\n qtypeG, // 33\r\n qtypeB, // 34\r\n qtypeC, // 35\r\n qtypeD, // 36\r\n etypeX01, // 37\r\n xftype38, // 38\r\n xftype39, // 39\r\n xftype40, // 40\r\n}\r\nexport enum JudicialInterpretCourtId {\r\n /* ! 司法院解釋 */\r\n //ctypeABC = 1, //司法解釋 (不分民刑事) -- 大理院解釋 / 最高法院解釋 / 司法院解釋\r\n ctypeD, /** 司法解釋 (不分民刑事) -- 大法官解釋 */\r\n ctypeA, /** 大理院解釋 */\r\n ctypeB, /** 最高法院解釋 */\r\n ctypeC, /** 司法院解釋 */\r\n ttypeX, /** 大法官不受理案件 (不分民刑事) -- 大法官不受理案件 */\r\n\r\n /* ! 大法庭 */\r\n jtype21gc1m1, /** 大法庭民事提案裁定 */\r\n jtype21gc1m3, /** 大法庭民事大法庭統一見解裁判 (大法庭) */\r\n jtype21gc1m4, /** 大法庭民事徵詢程序階段統一見解裁判 (意見統一) */\r\n jtype22gc2m1, /** 大法庭刑事提案裁定 */\r\n jtype22gc2m3, /** 大法庭刑事大法庭統一見解裁判 (大法庭) */\r\n jtype22gc2m4, /** 大法庭刑事徵詢程序階段統一見解裁判 (意見統一) */\r\n jtype22gc2m2, /** 大法庭刑事撤回撤銷裁判 */\r\n jtype23gc3m1, /** 大法庭行政提案裁定 */\r\n jtype23gc3m3, /** 大法庭行政大法庭統一見解裁判 (大法庭) */\r\n jtype23gc3m4, /** 大法庭行政徵詢程序階段統一見解裁判 (意見統一) */\r\n\r\n /* ! 判例 */\r\n jtypeA, /** 最高法院判例 -- 最高法院民事判例 */\r\n jtypeB, /** 最高法院判例 -- 最高法院刑事判例 */\r\n jtypeE, /** 最高行政法院判例(不分民刑事) -- 最高行政法院判例 */\r\n jtype1A, /** 最高法院判例 -- 停止適用高法院民事判例 */\r\n jtype1B, /** 最高法院判例 -- 停止適用高法院刑事判例 */\r\n jtype1E, /** 最高法院判例 -- 停止適用高法院行政判例 */\r\n\r\n /* ! 精選裁判 */\r\n jtypeC0, /** 最高法院裁判民事 一般 */\r\n jtypeC1, /** 最高法院裁判民事 廢止 */\r\n jtypeD0, /** 最高法院裁判刑事 一般 */\r\n jtypeD1, /** 最高法院裁判刑事 廢止 */\r\n jtypeF0, /** 最高法院裁判行政 一般 */\r\n jtypeF1, /** 最高法院裁判行政 廢止 */\r\n\r\n jtypeG, /** 高等法院裁判 -- 高等法院民事裁判 */\r\n jtypeH, /** 高等法院裁判 -- 高等法院刑事裁判 */\r\n jtypeK, /** 高等行政法院裁判 (不分民刑事) -- 高等行政法院裁判 */\r\n jtypeO, /** 智慧財產法院裁判(民刑事) -- 智慧財產法院民事裁判 */\r\n jtypeP, /** 智慧財產法院裁判(民刑事) -- 智慧財產法院刑事裁判 */\r\n jtypeQ, /** 智慧財產法院裁判 (行政) -- 智慧財產法院行政裁判 */\r\n jtypeI, /** 地方法院裁判 -- 地方法院民事裁判 */\r\n jtypeJ, /** 地方法院裁判 -- 地方法院刑事裁判 */\r\n jtypeR, /** 地方法院行政訴訟裁判 */\r\n\r\n jtypeU, /** 最高法院具參考價值裁判 -- 最高法院民事庭具參考價值裁判 */\r\n jtypeV, /** 最高法院具參考價值裁判 -- 最高法院刑事庭具參考價值裁判 */\r\n jtypeS, /** 高院暨所屬法院具參考價值裁判 -- 高院暨所屬法院民事庭具參考價值裁判 */\r\n jtypeT, /** 高院暨所屬法院具參考價值裁判 -- 高院暨所屬法院刑事庭具參考價值裁判 */\r\n\r\n /* ! 決議 */\r\n dtypeA0, /** 最高法院決議民事 一般 */\r\n dtypeA1, /** 最高法院決議民事 廢止 */\r\n dtypeB0, /** 最高法院決議刑事 一般 */\r\n dtypeB1, /** 最高法院決議刑事 廢止 */\r\n dtypeC0, /** 最高行政法院聯席會議決議 一般 */\r\n dtypeC1, /** 最高行政法院聯席會議決議 廢止 */\r\n\r\n /* ! 公懲 */\r\n jtypeL, /** 公懲會議決 (不分民刑事) -- 公懲會議決 */\r\n\r\n /* ! 座談會 */\r\n qtypeA, /** 法律問題座談 -- 民事法律問題座談 */\r\n qtypeG, /** 公證法律問題研討 */\r\n qtypeB, /** 法律問題座談 -- 刑事法律問題座談 */\r\n qtypeC, /** 行政法律問題座談(不分民刑事) -- 行政法律問題座談 */\r\n qtypeD, /** 公懲法律問題座談(不分民刑事) -- 公懲法律問題座談 */\r\n\r\n /* ! 行政函釋 */\r\n etypeX0, /** 行政函釋 一般 */\r\n etypeX1, /** 行政函釋 廢止 */\r\n\r\n /* ! 憲法法庭 */\r\n xftype38, /** 憲法判決 */\r\n xftype39, /** 實體裁定 */\r\n xftype40, /** 程序裁定 */\r\n}\r\n\r\n\r\n\r\nexport class JudicialInterpretCourt {\r\n catalogName?: string;\r\n blockName?: string;\r\n courtName?: string;\r\n id: JudicialInterpretCourtId;\r\n groupId: JudicialInterpretCourtGroupId;\r\n blockId: JudicialInterpretCourtBlockId;\r\n catalogId: JudicialInterpretCourtCatalogId;\r\n\r\n static getCatalogName(court: JudicialInterpretCourt): string {\r\n try {\r\n const name = JudicialInterpretCourtCatalogId[court.catalogId];\r\n const catalog = JudicialInterpretCourtCatalogs[name];\r\n return catalog.name;\r\n } catch (error) {\r\n }\r\n return '';\r\n }\r\n}\r\nexport class JudicialInterpretCourtGroup {\r\n conditionName: string;\r\n resultName: string;\r\n id: JudicialInterpretCourtGroupId;\r\n}\r\nexport class JudicialInterpretCourtBlock {\r\n conditionName: string;\r\n resultName: string;\r\n color: 'blue' | 'green' | 'red' | 'yellow' | 'purple';\r\n id: JudicialInterpretCourtBlockId;\r\n}\r\nexport class JudicialInterpretCourtCatalog {\r\n name: string;\r\n id: JudicialInterpretCourtCatalogId;\r\n}\r\n\r\nexport const judicialInterpretCourts: { [key in keyof typeof JudicialInterpretCourtId]: JudicialInterpretCourt } = {\r\n ctypeD: {\r\n catalogName: '司法院',\r\n blockName: '大法官',\r\n courtName: '大法官解釋',\r\n id: JudicialInterpretCourtId.ctypeD,\r\n groupId: JudicialInterpretCourtGroupId.ctypeD,\r\n blockId: JudicialInterpretCourtBlockId.Court_BigJudge,\r\n catalogId: JudicialInterpretCourtCatalogId.Court,\r\n },\r\n ctypeA: {\r\n catalogName: '司法院',\r\n blockName: '司法院',\r\n courtName: '司法院解釋 (包含大理院、最高法院、司法院)',\r\n id: JudicialInterpretCourtId.ctypeA,\r\n groupId: JudicialInterpretCourtGroupId.ctypeABC,\r\n blockId: JudicialInterpretCourtBlockId.Court_Court,\r\n catalogId: JudicialInterpretCourtCatalogId.Court,\r\n },\r\n ctypeB: {\r\n catalogName: '司法院',\r\n blockName: '司法院',\r\n courtName: '司法院解釋 (包含大理院、最高法院、司法院)',\r\n id: JudicialInterpretCourtId.ctypeB,\r\n groupId: JudicialInterpretCourtGroupId.ctypeABC,\r\n blockId: JudicialInterpretCourtBlockId.Court_Court,\r\n catalogId: JudicialInterpretCourtCatalogId.Court,\r\n },\r\n ctypeC: {\r\n catalogName: '司法院',\r\n blockName: '司法院',\r\n courtName: '司法院解釋 (包含大理院、最高法院、司法院)',\r\n id: JudicialInterpretCourtId.ctypeC,\r\n groupId: JudicialInterpretCourtGroupId.ctypeABC,\r\n blockId: JudicialInterpretCourtBlockId.Court_Court,\r\n catalogId: JudicialInterpretCourtCatalogId.Court,\r\n },\r\n ttypeX: {\r\n catalogName: '司法院',\r\n blockName: '不受理',\r\n courtName: '大法官不受理案件',\r\n id: JudicialInterpretCourtId.ttypeX,\r\n groupId: JudicialInterpretCourtGroupId.ttypeX,\r\n blockId: JudicialInterpretCourtBlockId.Court_Reject,\r\n catalogId: JudicialInterpretCourtCatalogId.Court,\r\n },\r\n xftype38: {\r\n catalogName: '司法院',\r\n blockName: '憲法法庭',\r\n courtName: '大法官不受理案件',\r\n id: JudicialInterpretCourtId.xftype38,\r\n groupId: JudicialInterpretCourtGroupId.xftype38,\r\n blockId: JudicialInterpretCourtBlockId.Court_XF,\r\n catalogId: JudicialInterpretCourtCatalogId.Court,\r\n },\r\n xftype39: {\r\n catalogName: '司法院',\r\n blockName: '憲法法庭',\r\n courtName: '大法官不受理案件',\r\n id: JudicialInterpretCourtId.xftype39,\r\n groupId: JudicialInterpretCourtGroupId.xftype39,\r\n blockId: JudicialInterpretCourtBlockId.Court_XF,\r\n catalogId: JudicialInterpretCourtCatalogId.Court,\r\n },\r\n xftype40: {\r\n catalogName: '司法院',\r\n blockName: '憲法法庭',\r\n courtName: '大法官不受理案件',\r\n id: JudicialInterpretCourtId.xftype39,\r\n groupId: JudicialInterpretCourtGroupId.xftype39,\r\n blockId: JudicialInterpretCourtBlockId.Court_XF,\r\n catalogId: JudicialInterpretCourtCatalogId.Court,\r\n },\r\n jtype21gc1m1: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '民事類',\r\n id: JudicialInterpretCourtId.jtype21gc1m1,\r\n groupId: JudicialInterpretCourtGroupId.jtype21gc1m134,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n jtype21gc1m3: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '民事類',\r\n id: JudicialInterpretCourtId.jtype21gc1m3,\r\n groupId: JudicialInterpretCourtGroupId.jtype21gc1m134,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n jtype21gc1m4: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '民事類',\r\n id: JudicialInterpretCourtId.jtype21gc1m4,\r\n groupId: JudicialInterpretCourtGroupId.jtype21gc1m134,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n jtype22gc2m1: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '刑事類',\r\n id: JudicialInterpretCourtId.jtype22gc2m1,\r\n groupId: JudicialInterpretCourtGroupId.jtype22gc2m1342,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n jtype22gc2m3: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '刑事類',\r\n id: JudicialInterpretCourtId.jtype22gc2m3,\r\n groupId: JudicialInterpretCourtGroupId.jtype22gc2m1342,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n jtype22gc2m4: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '刑事類',\r\n id: JudicialInterpretCourtId.jtype22gc2m4,\r\n groupId: JudicialInterpretCourtGroupId.jtype22gc2m1342,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n jtype22gc2m2: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '刑事類',\r\n id: JudicialInterpretCourtId.jtype22gc2m2,\r\n groupId: JudicialInterpretCourtGroupId.jtype22gc2m1342,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n jtype23gc3m1: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '行政類',\r\n id: JudicialInterpretCourtId.jtype23gc3m1,\r\n groupId: JudicialInterpretCourtGroupId.jtype23gc3m134,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n jtype23gc3m3: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '行政類',\r\n id: JudicialInterpretCourtId.jtype23gc3m3,\r\n groupId: JudicialInterpretCourtGroupId.jtype23gc3m134,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n jtype23gc3m4: {\r\n catalogName: '大法庭',\r\n blockName: '一般',\r\n courtName: '行政類',\r\n id: JudicialInterpretCourtId.jtype23gc3m4,\r\n groupId: JudicialInterpretCourtGroupId.jtype23gc3m134,\r\n blockId: JudicialInterpretCourtBlockId.Grand_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Grand,\r\n },\r\n\r\n jtypeA: {\r\n catalogName: '判例',\r\n blockName: '一般',\r\n courtName: '民事類',\r\n id: JudicialInterpretCourtId.jtypeA,\r\n groupId: JudicialInterpretCourtGroupId.jtypeA,\r\n blockId: JudicialInterpretCourtBlockId.Precedent_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Precedent,\r\n },\r\n jtypeB: {\r\n catalogName: '判例',\r\n blockName: '一般',\r\n courtName: '刑事類',\r\n id: JudicialInterpretCourtId.jtypeB,\r\n groupId: JudicialInterpretCourtGroupId.jtypeB,\r\n blockId: JudicialInterpretCourtBlockId.Precedent_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Precedent,\r\n },\r\n jtypeE: {\r\n catalogName: '判例',\r\n blockName: '一般',\r\n courtName: '行政類',\r\n id: JudicialInterpretCourtId.jtypeE,\r\n groupId: JudicialInterpretCourtGroupId.jtypeE,\r\n blockId: JudicialInterpretCourtBlockId.Precedent_Normal,\r\n catalogId: JudicialInterpretCourtCatalogId.Precedent,\r\n },\r\n jtype1A: {\r\n catalogName: '判例',\r\n blockName: '停止適用',\r\n courtName: '民事類',\r\n id: JudicialInterpretCourtId.jtype1A,\r\n groupId: JudicialInterpretCourtGroupId.jtype1A,\r\n blockId: JudicialInterpretCourtBlockId.Precedent_Stop,\r\n catalogId: JudicialInterpretCourtCatalogId.Precedent,\r\n },\r\n jtype1B: {\r\n catalogName: '判例',\r\n blockName: '停止適用',\r\n courtName: '刑事類',\r\n id: JudicialInterpretCourtId.jtype1B,\r\n groupId: JudicialInterpretCourtGroupId.jtype1B,\r\n blockId: JudicialInterpretCourtBlockId.Precedent_Stop,\r\n catalogId: JudicialInterpretCourtCatalogId.Precedent,\r\n },\r\n jtype1E: {\r\n catalogName: '判例',\r\n blockName: '停止適用',\r\n courtName: '行政類',\r\n id: JudicialInterpretCourtId.jtype1E,\r\n groupId: JudicialInterpretCourtGroupId.jtype1E,\r\n blockId: JudicialInterpretCourtBlockId.Precedent_Stop,\r\n catalogId: JudicialInterpretCourtCatalogId.Precedent,\r\n },\r\n\r\n jtypeI: {\r\n catalogName: '精選裁判',\r\n blockName: '民事',\r\n courtName: '地方法院',\r\n id: JudicialInterpretCourtId.jtypeI,\r\n groupId: JudicialInterpretCourtGroupId.jtypeI,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_V,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeG: {\r\n catalogName: '精選裁判',\r\n blockName: '民事',\r\n courtName: '高等法院',\r\n id: JudicialInterpretCourtId.jtypeG,\r\n groupId: JudicialInterpretCourtGroupId.jtypeG,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_V,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeC0: {\r\n catalogName: '精選裁判',\r\n blockName: '民事',\r\n courtName: '最高法院',\r\n id: JudicialInterpretCourtId.jtypeC0,\r\n groupId: JudicialInterpretCourtGroupId.jtypeC01,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_V,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeC1: {\r\n catalogName: '精選裁判',\r\n blockName: '民事',\r\n courtName: '最高法院',\r\n id: JudicialInterpretCourtId.jtypeC1,\r\n groupId: JudicialInterpretCourtGroupId.jtypeC01,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_V,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeO: {\r\n catalogName: '精選裁判',\r\n blockName: '民事',\r\n courtName: '智慧財產法院',\r\n id: JudicialInterpretCourtId.jtypeO,\r\n groupId: JudicialInterpretCourtGroupId.jtypeO,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_V,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n\r\n jtypeJ: {\r\n catalogName: '精選裁判',\r\n blockName: '刑事',\r\n courtName: '地方法院',\r\n id: JudicialInterpretCourtId.jtypeJ,\r\n groupId: JudicialInterpretCourtGroupId.jtypeJ,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_M,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeH: {\r\n catalogName: '精選裁判',\r\n blockName: '刑事',\r\n courtName: '高等法院',\r\n id: JudicialInterpretCourtId.jtypeH,\r\n groupId: JudicialInterpretCourtGroupId.jtypeH,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_M,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeD0: {\r\n catalogName: '精選裁判',\r\n blockName: '刑事',\r\n courtName: '最高法院',\r\n id: JudicialInterpretCourtId.jtypeD0,\r\n groupId: JudicialInterpretCourtGroupId.jtypeD01,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_M,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeD1: {\r\n catalogName: '精選裁判',\r\n blockName: '刑事',\r\n courtName: '最高法院',\r\n id: JudicialInterpretCourtId.jtypeD1,\r\n groupId: JudicialInterpretCourtGroupId.jtypeD01,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_M,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeP: {\r\n catalogName: '精選裁判',\r\n blockName: '刑事',\r\n courtName: '智慧財產法院',\r\n id: JudicialInterpretCourtId.jtypeP,\r\n groupId: JudicialInterpretCourtGroupId.jtypeP,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_M,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n\r\n jtypeR: {\r\n catalogName: '精選裁判',\r\n blockName: '行政',\r\n courtName: '地方法院',\r\n id: JudicialInterpretCourtId.jtypeR,\r\n groupId: JudicialInterpretCourtGroupId.jtypeR,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_A,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeK: {\r\n catalogName: '精選裁判',\r\n blockName: '行政',\r\n courtName: '高等法院',\r\n id: JudicialInterpretCourtId.jtypeK,\r\n groupId: JudicialInterpretCourtGroupId.jtypeK,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_A,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeF0: {\r\n catalogName: '精選裁判',\r\n blockName: '行政',\r\n courtName: '最高法院',\r\n id: JudicialInterpretCourtId.jtypeF0,\r\n groupId: JudicialInterpretCourtGroupId.jtypeF01,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_A,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeF1: {\r\n catalogName: '精選裁判',\r\n blockName: '行政',\r\n courtName: '最高法院',\r\n id: JudicialInterpretCourtId.jtypeF1,\r\n groupId: JudicialInterpretCourtGroupId.jtypeF01,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_A,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeQ: {\r\n catalogName: '精選裁判',\r\n blockName: '行政',\r\n courtName: '智慧財產法院',\r\n id: JudicialInterpretCourtId.jtypeQ,\r\n groupId: JudicialInterpretCourtGroupId.jtypeQ,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_A,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n\r\n jtypeU: {\r\n catalogName: '精選裁判',\r\n blockName: '最高法院 - 具有參考價值的裁判',\r\n courtName: '民事類',\r\n id: JudicialInterpretCourtId.jtypeU,\r\n groupId: JudicialInterpretCourtGroupId.jtypeU,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_SupremeReference,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeV: {\r\n catalogName: '精選裁判',\r\n blockName: '最高法院 - 具有參考價值的裁判',\r\n courtName: '刑事類',\r\n id: JudicialInterpretCourtId.jtypeV,\r\n groupId: JudicialInterpretCourtGroupId.jtypeV,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_SupremeReference,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n\r\n jtypeS: {\r\n catalogName: '精選裁判',\r\n blockName: '高等法院及所屬法院 - \\n具有參考價值的裁判',\r\n courtName: '民事類',\r\n id: JudicialInterpretCourtId.jtypeS,\r\n groupId: JudicialInterpretCourtGroupId.jtypeS,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_HighReference,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n jtypeT: {\r\n catalogName: '精選裁判',\r\n blockName: '高等法院及所屬法院 - \\n具有參考價值的裁判',\r\n courtName: '刑事類',\r\n id: JudicialInterpretCourtId.jtypeT,\r\n groupId: JudicialInterpretCourtGroupId.jtypeT,\r\n blockId: JudicialInterpretCourtBlockId.Judgment_HighReference,\r\n catalogId: JudicialInterpretCourtCatalogId.Judgment,\r\n },\r\n\r\n dtypeA0: {\r\n catalogName: '決議',\r\n blockName: '民事',\r\n courtName: '最高法院決議 (庭推決議)',\r\n id: JudicialInterpretCourtId.dtypeA0,\r\n groupId: JudicialInterpretCourtGroupId.dtypeA01,\r\n blockId: JudicialInterpretCourtBlockId.Resolution_V,\r\n catalogId: JudicialInterpretCourtCatalogId.Resolution,\r\n },\r\n dtypeA1: {\r\n catalogName: '決議',\r\n blockName: '民事',\r\n courtName: '最高法院決議 (庭推決議)',\r\n id: JudicialInterpretCourtId.dtypeA1,\r\n groupId: JudicialInterpretCourtGroupId.dtypeA01,\r\n blockId: JudicialInterpretCourtBlockId.Resolution_V,\r\n catalogId: JudicialInterpretCourtCatalogId.Resolution,\r\n },\r\n dtypeB0: {\r\n catalogName: '決議',\r\n blockName: '刑事',\r\n courtName: '最高法院決議 (庭推決議)',\r\n id: JudicialInterpretCourtId.dtypeB0,\r\n groupId: JudicialInterpretCourtGroupId.dtypeB01,\r\n blockId: JudicialInterpretCourtBlockId.Resolution_M,\r\n catalogId: JudicialInterpretCourtCatalogId.Resolution,\r\n },\r\n dtypeB1: {\r\n catalogName: '決議',\r\n blockName: '刑事',\r\n courtName: '最高法院決議 (庭推決議)',\r\n id: JudicialInterpretCourtId.dtypeB1,\r\n groupId: JudicialInterpretCourtGroupId.dtypeB01,\r\n blockId: JudicialInterpretCourtBlockId.Resolution_M,\r\n catalogId: JudicialInterpretCourtCatalogId.Resolution,\r\n },\r\n dtypeC0: {\r\n catalogName: '決議',\r\n blockName: '行政',\r\n courtName: '最高行政法院聯席會議決議',\r\n id: JudicialInterpretCourtId.dtypeC0,\r\n groupId: JudicialInterpretCourtGroupId.dtypeC01,\r\n blockId: JudicialInterpretCourtBlockId.Resolution_A,\r\n catalogId: JudicialInterpretCourtCatalogId.Resolution,\r\n },\r\n dtypeC1: {\r\n catalogName: '決議',\r\n blockName: '行政',\r\n courtName: '最高行政法院聯席會議決議',\r\n id: JudicialInterpretCourtId.dtypeC1,\r\n groupId: JudicialInterpretCourtGroupId.dtypeC01,\r\n blockId: JudicialInterpretCourtBlockId.Resolution_A,\r\n catalogId: JudicialInterpretCourtCatalogId.Resolution,\r\n },\r\n\r\n jtypeL: {\r\n catalogName: '公懲',\r\n blockName: '公懲會議決',\r\n courtName: '公懲會議決',\r\n id: JudicialInterpretCourtId.jtypeL,\r\n groupId: JudicialInterpretCourtGroupId.jtypeL,\r\n blockId: JudicialInterpretCourtBlockId.Discipline_Discipline,\r\n catalogId: JudicialInterpretCourtCatalogId.Discipline,\r\n },\r\n\r\n qtypeA: {\r\n catalogName: '座談會',\r\n blockName: '民事',\r\n courtName: '民事法律問題座談',\r\n id: JudicialInterpretCourtId.qtypeA,\r\n groupId: JudicialInterpretCourtGroupId.qtypeA,\r\n blockId: JudicialInterpretCourtBlockId.Seminar_V,\r\n catalogId: JudicialInterpretCourtCatalogId.Seminar,\r\n },\r\n qtypeG: {\r\n catalogName: '座談會',\r\n blockName: '民事',\r\n courtName: '公證法律問題研討',\r\n id: JudicialInterpretCourtId.qtypeG,\r\n groupId: JudicialInterpretCourtGroupId.qtypeG,\r\n blockId: JudicialInterpretCourtBlockId.Seminar_V,\r\n catalogId: JudicialInterpretCourtCatalogId.Seminar,\r\n },\r\n qtypeB: {\r\n catalogName: '座談會',\r\n blockName: '刑事',\r\n courtName: '刑事法律問題座談',\r\n id: JudicialInterpretCourtId.qtypeB,\r\n groupId: JudicialInterpretCourtGroupId.qtypeB,\r\n blockId: JudicialInterpretCourtBlockId.Seminar_M,\r\n catalogId: JudicialInterpretCourtCatalogId.Seminar,\r\n },\r\n qtypeC: {\r\n catalogName: '座談會',\r\n blockName: '行政',\r\n courtName: '行政法律問題座談',\r\n id: JudicialInterpretCourtId.qtypeC,\r\n groupId: JudicialInterpretCourtGroupId.qtypeC,\r\n blockId: JudicialInterpretCourtBlockId.Seminar_A,\r\n catalogId: JudicialInterpretCourtCatalogId.Seminar,\r\n },\r\n qtypeD: {\r\n catalogName: '座談會',\r\n blockName: '公懲',\r\n courtName: '公懲法律問題座談',\r\n id: JudicialInterpretCourtId.qtypeD,\r\n groupId: JudicialInterpretCourtGroupId.qtypeD,\r\n blockId: JudicialInterpretCourtBlockId.Seminar_Discipline,\r\n catalogId: JudicialInterpretCourtCatalogId.Seminar,\r\n },\r\n\r\n etypeX0: {\r\n catalogName: '行政函令',\r\n blockName: '行政函令',\r\n courtName: '行政函令',\r\n id: JudicialInterpretCourtId.etypeX0,\r\n groupId: JudicialInterpretCourtGroupId.etypeX01,\r\n blockId: JudicialInterpretCourtBlockId.Execute_Execute,\r\n catalogId: JudicialInterpretCourtCatalogId.Execute,\r\n },\r\n etypeX1: {\r\n catalogName: '行政函令',\r\n blockName: '行政函令',\r\n courtName: '行政函令',\r\n id: JudicialInterpretCourtId.etypeX1,\r\n groupId: JudicialInterpretCourtGroupId.etypeX01,\r\n blockId: JudicialInterpretCourtBlockId.Execute_Execute,\r\n catalogId: JudicialInterpretCourtCatalogId.Execute,\r\n },\r\n}\r\nexport const JudicialInterpretCourtGroups: { [key in keyof typeof JudicialInterpretCourtGroupId]: JudicialInterpretCourtGroup } = {\r\n ctypeABC: { conditionName: '司法院解釋 \\n(包含大理院、最高法院、司法院)', resultName: '司法院解釋', id: JudicialInterpretCourtGroupId.ctypeABC },\r\n ctypeD: { conditionName: '大法官解釋', resultName: '大法官解釋', id: JudicialInterpretCourtGroupId.ctypeD },\r\n ttypeX: { conditionName: '大法官不受理案件', resultName: '大法官不受理案件', id: JudicialInterpretCourtGroupId.ttypeX },\r\n jtype21gc1m134: { conditionName: '民事類', resultName: '民事大法庭', id: JudicialInterpretCourtGroupId.jtype21gc1m134 },\r\n jtype22gc2m1342: { conditionName: '刑事類', resultName: '刑事大法庭', id: JudicialInterpretCourtGroupId.jtype22gc2m1342 },\r\n jtype23gc3m134: { conditionName: '行政類', resultName: '行政大法庭', id: JudicialInterpretCourtGroupId.jtype23gc3m134 },\r\n jtypeA: { conditionName: '民事類', resultName: '民事類', id: JudicialInterpretCourtGroupId.jtypeA },\r\n jtypeB: { conditionName: '刑事類', resultName: '刑事類', id: JudicialInterpretCourtGroupId.jtypeB },\r\n jtypeE: { conditionName: '行政類', resultName: '行政類', id: JudicialInterpretCourtGroupId.jtypeE },\r\n jtype1A: { conditionName: '民事類', resultName: '民事停止適用判例', id: JudicialInterpretCourtGroupId.jtype1A },\r\n jtype1B: { conditionName: '刑事類', resultName: '刑事停止適用判例', id: JudicialInterpretCourtGroupId.jtype1B },\r\n jtype1E: { conditionName: '行政類', resultName: '行政停止適用判例', id: JudicialInterpretCourtGroupId.jtype1E },\r\n jtypeI: { conditionName: '地方法院', resultName: '地方法院', id: JudicialInterpretCourtGroupId.jtypeI },\r\n jtypeG: { conditionName: '高等法院', resultName: '高等法院', id: JudicialInterpretCourtGroupId.jtypeG },\r\n jtypeC01: { conditionName: '最高法院', resultName: '最高法院', id: JudicialInterpretCourtGroupId.jtypeC01 },\r\n jtypeO: { conditionName: '智慧財產法院', resultName: '智慧財產法院', id: JudicialInterpretCourtGroupId.jtypeO },\r\n jtypeJ: { conditionName: '地方法院', resultName: '地方法院', id: JudicialInterpretCourtGroupId.jtypeJ },\r\n jtypeH: { conditionName: '高等法院', resultName: '高等法院', id: JudicialInterpretCourtGroupId.jtypeH },\r\n jtypeD01: { conditionName: '最高法院', resultName: '最高法院', id: JudicialInterpretCourtGroupId.jtypeD01 },\r\n jtypeP: { conditionName: '智慧財產法院', resultName: '智慧財產法院', id: JudicialInterpretCourtGroupId.jtypeP },\r\n jtypeR: { conditionName: '地方法院', resultName: '地方法院', id: JudicialInterpretCourtGroupId.jtypeR },\r\n jtypeK: { conditionName: '高等法院', resultName: '高等法院', id: JudicialInterpretCourtGroupId.jtypeK },\r\n jtypeF01: { conditionName: '最高法院', resultName: '最高法院', id: JudicialInterpretCourtGroupId.jtypeF01 },\r\n jtypeQ: { conditionName: '智慧財產法院', resultName: '智慧財產法院', id: JudicialInterpretCourtGroupId.jtypeQ },\r\n jtypeU: { conditionName: '民事類', resultName: '民事類', id: JudicialInterpretCourtGroupId.jtypeU },\r\n jtypeV: { conditionName: '刑事類', resultName: '刑事類', id: JudicialInterpretCourtGroupId.jtypeV },\r\n jtypeS: { conditionName: '民事類', resultName: '民事類', id: JudicialInterpretCourtGroupId.jtypeS },\r\n jtypeT: { conditionName: '刑事類', resultName: '刑事類', id: JudicialInterpretCourtGroupId.jtypeT },\r\n dtypeA01: { conditionName: '最高法院決議 (庭推決議)', resultName: '最高法院決議 ', id: JudicialInterpretCourtGroupId.dtypeA01 },\r\n dtypeB01: { conditionName: '最高法院決議 (庭推決議)', resultName: '最高法院決議', id: JudicialInterpretCourtGroupId.dtypeB01 },\r\n dtypeC01: { conditionName: '最高行政法院聯席會議決議', resultName: '最高行政法院聯席會議決議', id: JudicialInterpretCourtGroupId.dtypeC01 },\r\n jtypeL: { conditionName: '公懲會議決', resultName: '公懲裁判', id: JudicialInterpretCourtGroupId.jtypeL },\r\n qtypeA: { conditionName: '民事法律問題座談', resultName: '民事法律問題座談', id: JudicialInterpretCourtGroupId.qtypeA },\r\n qtypeG: { conditionName: '公證法律問題研討', resultName: '公證法律問題研討', id: JudicialInterpretCourtGroupId.qtypeG },\r\n qtypeB: { conditionName: '刑事法律問題座談', resultName: '刑事法律問題座談', id: JudicialInterpretCourtGroupId.qtypeB },\r\n qtypeC: { conditionName: '行政法律問題座談', resultName: '行政法律問題座談', id: JudicialInterpretCourtGroupId.qtypeC },\r\n qtypeD: { conditionName: '公懲法律問題座談', resultName: '公懲法律問題座談', id: JudicialInterpretCourtGroupId.qtypeD },\r\n etypeX01: { conditionName: '行政函令', resultName: '行政函令', id: JudicialInterpretCourtGroupId.etypeX01 },\r\n xftype38: { conditionName: '憲法案件', resultName: '憲法案件', id: JudicialInterpretCourtGroupId.xftype38 },\r\n xftype39: { conditionName: '實體裁定', resultName: '實體裁定', id: JudicialInterpretCourtGroupId.xftype39 },\r\n xftype40: { conditionName: '程序裁定', resultName: '程序裁定', id: JudicialInterpretCourtGroupId.xftype40 },\r\n}\r\nexport const JudicialInterpretCourtBlocks: { [key in keyof typeof JudicialInterpretCourtBlockId]: JudicialInterpretCourtBlock } = {\r\n Court_Court: { conditionName: '司法院', resultName: '司法院', color: 'blue', id: JudicialInterpretCourtBlockId.Court_Court },\r\n Court_BigJudge: { conditionName: '大法官', resultName: '大法官', color: 'green', id: JudicialInterpretCourtBlockId.Court_BigJudge },\r\n Court_Reject: { conditionName: '不受理', resultName: '不受理', color: 'red', id: JudicialInterpretCourtBlockId.Court_Reject },\r\n Court_XF: { conditionName: '憲法法庭', resultName: '憲法法庭', color: 'yellow', id: JudicialInterpretCourtBlockId.Court_XF },\r\n Grand_Normal: { conditionName: '一般', resultName: '大法庭', color: 'blue', id: JudicialInterpretCourtBlockId.Grand_Normal },\r\n Precedent_Normal: { conditionName: '一般', resultName: '一般', color: 'blue', id: JudicialInterpretCourtBlockId.Precedent_Normal },\r\n Precedent_Stop: { conditionName: '停止適用', resultName: '停止適用', color: 'red', id: JudicialInterpretCourtBlockId.Precedent_Stop },\r\n Judgment_V: { conditionName: '民事', resultName: '民事', color: 'blue', id: JudicialInterpretCourtBlockId.Judgment_V },\r\n Judgment_M: { conditionName: '刑事', resultName: '刑事', color: 'green', id: JudicialInterpretCourtBlockId.Judgment_M },\r\n Judgment_A: { conditionName: '行政', resultName: '行政', color: 'red', id: JudicialInterpretCourtBlockId.Judgment_A },\r\n Judgment_SupremeReference: { conditionName: '最高法院 - 具有參考價值的裁判', resultName: '最高法院 - 具有參考價值的裁判', color: 'yellow', id: JudicialInterpretCourtBlockId.Judgment_SupremeReference },\r\n Judgment_HighReference: { conditionName: '高等法院及所屬法院 - \\n具有參考價值的裁判', resultName: '高等法院及所屬法院 - \\n具有參考價值的裁判', color: 'purple', id: JudicialInterpretCourtBlockId.Judgment_HighReference },\r\n Resolution_V: { conditionName: '民事', resultName: '民事', color: 'blue', id: JudicialInterpretCourtBlockId.Resolution_V },\r\n Resolution_M: { conditionName: '刑事', resultName: '刑事', color: 'green', id: JudicialInterpretCourtBlockId.Resolution_M },\r\n Resolution_A: { conditionName: '行政', resultName: '行政', color: 'red', id: JudicialInterpretCourtBlockId.Resolution_A },\r\n Discipline_Discipline: { conditionName: '公懲會議決', resultName: '公懲法院', color: 'blue', id: JudicialInterpretCourtBlockId.Discipline_Discipline },\r\n Seminar_V: { conditionName: '民事', resultName: '民事', color: 'blue', id: JudicialInterpretCourtBlockId.Seminar_V },\r\n Seminar_M: { conditionName: '刑事', resultName: '刑事', color: 'green', id: JudicialInterpretCourtBlockId.Seminar_M },\r\n Seminar_A: { conditionName: '行政', resultName: '行政', color: 'red', id: JudicialInterpretCourtBlockId.Seminar_A },\r\n Seminar_Discipline: { conditionName: '公懲', resultName: '公懲', color: 'purple', id: JudicialInterpretCourtBlockId.Seminar_Discipline },\r\n Execute_Execute: { conditionName: '行政函令', resultName: '行政函令', color: 'blue', id: JudicialInterpretCourtBlockId.Execute_Execute },\r\n}\r\nexport const JudicialInterpretCourtCatalogs: { [key in keyof typeof JudicialInterpretCourtCatalogId]: JudicialInterpretCourtCatalog } = {\r\n Court: { name: '司法院', id: JudicialInterpretCourtCatalogId.Court },\r\n Grand: { name: '大法庭', id: JudicialInterpretCourtCatalogId.Grand },\r\n Precedent: { name: '判例', id: JudicialInterpretCourtCatalogId.Precedent },\r\n Judgment: { name: '精選裁判', id: JudicialInterpretCourtCatalogId.Judgment },\r\n Resolution: { name: '決議', id: JudicialInterpretCourtCatalogId.Resolution },\r\n Discipline: { name: '公懲', id: JudicialInterpretCourtCatalogId.Discipline },\r\n Seminar: { name: '座談會', id: JudicialInterpretCourtCatalogId.Seminar },\r\n Execute: { name: '行政函令', id: JudicialInterpretCourtCatalogId.Execute },\r\n}\r\n\r\nexport const getJudicialInterpretCourtIdsFromCourtGroupId = (groupId: JudicialInterpretCourtGroupId): JudicialInterpretCourtId[] => {\r\n const ids = {};\r\n Object.values(judicialInterpretCourts)\r\n .filter(c => c.groupId == groupId)\r\n .forEach(c => {\r\n ids[JudicialInterpretCourtId[c.id]] = 1;\r\n });\r\n const ids2 = Object.keys(ids).map(id => JudicialInterpretCourtId[id]);\r\n return ids2;\r\n}\r\nexport const getJudicialInterpretCourtGroupIdsFromCourtBlockId = (blockId: JudicialInterpretCourtBlockId): JudicialInterpretCourtGroupId[] => {\r\n const ids = {};\r\n Object.values(judicialInterpretCourts)\r\n .filter(c => c.blockId == blockId)\r\n .forEach(c => {\r\n ids[JudicialInterpretCourtGroupId[c.id]] = 1;\r\n });\r\n const ids2 = Object.keys(ids).map(id => JudicialInterpretCourtGroupId[id]);\r\n return ids2;\r\n}\r\nexport const getJudicialInterpretCourtGroupIdsFromCourtCatalogId = (catalogId: JudicialInterpretCourtCatalogId): JudicialInterpretCourtGroupId[] => {\r\n const ids = {};\r\n Object.values(judicialInterpretCourts)\r\n .filter(c => c.catalogId == catalogId)\r\n .forEach(c => {\r\n ids[JudicialInterpretCourtGroupId[c.id]] = 1;\r\n });\r\n const ids2 = Object.keys(ids).map(id => JudicialInterpretCourtGroupId[id]);\r\n return ids2;\r\n}\r\nexport const getJudicialInterpretCourtBlockIdsFromCourtCatalogId = (catalogId: JudicialInterpretCourtCatalogId): JudicialInterpretCourtBlockId[] => {\r\n const ids = {};\r\n Object.values(judicialInterpretCourts)\r\n .filter(c => c.catalogId == catalogId)\r\n .forEach(c => {\r\n ids[JudicialInterpretCourtBlockId[c.id]] = 1;\r\n });\r\n const ids2 = Object.keys(ids).map(id => JudicialInterpretCourtBlockId[id]);\r\n return ids2;\r\n}\r\n\r\n\r\n\r\nexport class JudicialInterpretSearchCourtGroup {\r\n name: string;\r\n courtGroupId: JudicialInterpretCourtGroupId;\r\n count: number;\r\n countString: string;\r\n isCounting: boolean;\r\n isRequested: boolean;\r\n isCountFinish: boolean;\r\n tag1: string;\r\n tag2: string;\r\n}\r\nexport class JudicialInterpretSearchCourtCatalog {\r\n name: string;\r\n courtCatalogId: JudicialInterpretCourtCatalogId;\r\n count: number;\r\n countString: string;\r\n isCounting: boolean;\r\n isRequested: boolean;\r\n isCountFinished: boolean;\r\n countRead: boolean;\r\n\r\n // courtGroups: JudicialInterpretSearchCourtGroup[];\r\n}\r\n\r\n\r\nexport class JudicialInterpretSearchCourtGroupCountResult {\r\n count: number;\r\n courtCatalogId: JudicialInterpretCourtCatalogId;\r\n courtGroupId: JudicialInterpretCourtGroupId;\r\n executeResult: any;\r\n}","import { Component, OnInit, EventEmitter, Output, Input, OnDestroy, ViewChild, ElementRef } from '@angular/core';\r\nimport { BehaviorSubject } from '../../../../node_modules/rxjs';\r\nimport { InputText } from '../compose-search-popup/input-text';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\n\r\n@Component({\r\n selector: 'app-keyword-finder-lite',\r\n templateUrl: './keyword-finder-lite.component.html',\r\n styleUrls: ['./keyword-finder-lite.component.scss']\r\n})\r\nexport class KeywordFinderLiteComponent implements OnInit, OnDestroy {\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n @Output() clear: EventEmitter = new EventEmitter();\r\n @Output() textChange: EventEmitter = new EventEmitter();\r\n\r\n @Input() maxLength: number;\r\n\r\n @ViewChild('inputElement', { static: true }) inputElement: ElementRef;\r\n\r\n\r\n searchedText$: BehaviorSubject = new BehaviorSubject('');\r\n searchedText: string;\r\n inputText: InputText = new InputText();\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.searchedText = this.searchedText$.subscribe(text => {\r\n this.searchedText = text;\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n disableSubmitButton(): boolean {\r\n if (this.inputText.isEmpty()) {\r\n return true;\r\n }\r\n if (this.searchedText === this.inputText.text) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n showClearButton(): boolean {\r\n if (!this.inputText.isEmpty()) {\r\n return true;\r\n }\r\n if (this.searchedText) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n clickClear(): void {\r\n this.inputText.clear();\r\n this.searchedText$.next('');\r\n this.clear.emit(null);\r\n this.onChange();\r\n }\r\n clickSubmit(): void {\r\n this.searchedText$.next(this.inputText.text);\r\n this.submit.emit(this.inputText.text);\r\n }\r\n enterKeydown(ev: KeyboardEvent): void {\r\n if (ev.keyCode !== 13) {\r\n return;\r\n }\r\n this.clickSubmit();\r\n }\r\n\r\n onChange(): void {\r\n this.textChange.emit(this.inputText.text);\r\n }\r\n setText(text: string): void {\r\n this.inputText.text = text;\r\n this.onChange();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
清除
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { KeywordFinderLiteComponent } from './keyword-finder-lite.component';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ],\r\n declarations: [KeywordFinderLiteComponent],\r\n exports: [KeywordFinderLiteComponent]\r\n})\r\nexport class KeywordFinderLiteModule { }\r\n","import { Component, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { InputText } from '../compose-search-popup/input-text';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\n\r\n@Component({\r\n selector: 'app-keyword-finder',\r\n templateUrl: './keyword-finder.component.html',\r\n styleUrls: ['./keyword-finder.component.scss']\r\n})\r\nexport class KeywordFinderComponent implements OnInit, OnDestroy {\r\n @Output() submit: EventEmitter = new EventEmitter();\r\n @Output() clear: EventEmitter = new EventEmitter();\r\n searchedText$: BehaviorSubject = new BehaviorSubject('');\r\n searchedText: string;\r\n inputText: InputText = new InputText();\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.searchedText = this.searchedText$.subscribe(text => {\r\n this.searchedText = text;\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n disableSubmitButton(): boolean {\r\n if (this.inputText.isEmpty()) {\r\n return true;\r\n }\r\n if (this.searchedText == this.inputText.text) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n showClearButton(): boolean {\r\n if (!this.inputText.isEmpty()) {\r\n return true;\r\n }\r\n if (this.searchedText) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n clickClear(): void {\r\n this.inputText.clear();\r\n this.searchedText$.next('');\r\n this.clear.emit(null);\r\n }\r\n clickSubmit(): void {\r\n this.searchedText$.next(this.inputText.text);\r\n this.submit.emit(this.inputText.text);\r\n }\r\n enterKeydown(ev: KeyboardEvent): void {\r\n if (ev.keyCode !== 13) {\r\n return;\r\n }\r\n this.clickSubmit();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
清除
\r\n
\r\n
送出
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { KeywordFinderComponent } from './keyword-finder.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule, \r\n ReactiveFormsModule,\r\n ],\r\n declarations: [\r\n KeywordFinderComponent\r\n ],\r\n exports:[\r\n KeywordFinderComponent\r\n ]\r\n})\r\nexport class KeywordFinderModule { }\r\n","export enum SearcherKeywordKind {\r\n FileSubject = 0,\r\n PointSummary = 1,\r\n IssueSortOut = 2,\r\n IssueAnswer = 3,\r\n CaseTag = 4,\r\n Bookmark = 5,\r\n Comment = 6,\r\n ComposeSearch = 7,\r\n LawRuleName = 8,\r\n LawRuleFulltext = 9,\r\n JudgmentFulltext = 10,\r\n JudicialInterpretFulltext = 11,\r\n SummaryTag = 12,\r\n}\r\n","import { ComposeType } from '../compose-search-popup/compose-type';\r\nimport { SearcherKeywordKind } from './searcher-keyword-kind';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\n\r\nexport class SearcherKeyword {\r\n index: number;\r\n compose: ComposeType;\r\n kind: SearcherKeywordKind;\r\n keyword: string;\r\n disable?: boolean;\r\n\r\n constructor() { }\r\n\r\n static create(obj: any): SearcherKeyword {\r\n return Serializable.extendObjectFromResponseObject(\r\n new SearcherKeyword(),\r\n obj\r\n );\r\n }\r\n}\r\n","export class LawArticleContentLine {\r\n index: number;\r\n text: string;\r\n textTrim: string;\r\n partIndex: number;\r\n header: string;\r\n headerType: string;\r\n headerIndex: number;\r\n headerIndexText: string;\r\n path: string;\r\n deepIndex: number;\r\n newline: boolean;\r\n isTable: boolean;\r\n subLawArticleLinesCountTotal: number;\r\n subLawArticleLines: LawArticleContentLine[];\r\n\r\n constructor(index: number, text: string) {\r\n this.index = index;\r\n this.text = text;\r\n this.textTrim = text.trim();\r\n this.partIndex = 0;\r\n this.header = '';\r\n this.headerType = '';\r\n this.headerIndex = 0;\r\n this.headerIndexText = '';\r\n this.path = '';\r\n this.deepIndex = 0;\r\n this.newline = false;\r\n this.isTable = false;\r\n this.subLawArticleLinesCountTotal = 0;\r\n this.subLawArticleLines = [];\r\n }\r\n}\r\n","export class LawArticleContentSpliterFlag {\r\n inPart: boolean;\r\n inTable: boolean;\r\n lastType: string;\r\n typeDeepIndex: { [key: string]: number };\r\n lastTypeIndex: { [key: string]: number };\r\n deepIndex: number;\r\n prevType: string;\r\n currentPartIndex: number;\r\n prevTypeStartIndex: number;\r\n constructor() {\r\n this.inPart = false;\r\n this.inTable = false;\r\n this.lastType = '';\r\n this.typeDeepIndex = {};\r\n this.lastTypeIndex = {};\r\n this.deepIndex = 0;\r\n this.prevType = '';\r\n this.currentPartIndex = 0;\r\n this.prevTypeStartIndex = -1;\r\n }\r\n\r\n resetTypeDeepIndex(): void {\r\n Object.keys(this.typeDeepIndex).forEach(key => {\r\n this.typeDeepIndex[key] = 0;\r\n });\r\n }\r\n}\r\n","import { LawArticleContentSpliterFlag } from './law-article-content-spliter-flag';\r\nimport { ILawArticleContentLineMatcher } from './i-law-article-content-line-matcher';\r\nimport { LawArticleContentLine } from './law-article-content-line';\r\n\r\nconst LawArticleLineMatcher: { [key: string]: ILawArticleContentLineMatcher } = {\r\n '行_頭': { typeName: '', typeRegex: new RegExp(/[:。]$/) },\r\n\r\n '段_數類': { typeName: '數類', typeRegex: new RegExp(/^第([一二三四五六七八九十]+)類:/) },\r\n '段_數類2': { typeName: '數類', typeRegex: new RegExp(/^第([一二三四五六七八九十]+)類/) },\r\n '段_數天干': { typeName: '數天干', typeRegex: new RegExp(/^([甲乙丙丁戊己庚辛壬癸]+)、/) },\r\n '段_數地支': { typeName: '數地支', typeRegex: new RegExp(/^([子丑寅卯辰巳午未申酉戌亥]+)、/) },\r\n '段_數、': { typeName: '數、', typeRegex: new RegExp(/^([一二三四五六七八九十]+)、/) },\r\n '段_數、2': { typeName: '數、', typeRegex: new RegExp(/^([1234567890]+)、/) },\r\n '段_數括': { typeName: '數括', typeRegex: new RegExp(/^\\(([一二三四五六七八九十]+)\\)/) },\r\n '段_數括2': { typeName: '數括', typeRegex: new RegExp(/^(([一二三四五六七八九十]+))/) },\r\n '段_數阿括': { typeName: '數阿括', typeRegex: new RegExp(/^\\((\\d+)\\)/) },\r\n '段_數阿括2': { typeName: '數阿括', typeRegex: new RegExp(/^((\\d+))/) },\r\n '段_數阿點': { typeName: '數阿點', typeRegex: new RegExp(/^(\\d+)[\\..]/) },\r\n '段_數阿點2': { typeName: '數阿點', typeRegex: new RegExp(/^([1234567890]+)[\\..]/) },\r\n\r\n '表_始表格': { typeName: '表格_始', typeRegex: new RegExp(/^┌.+┐$/) },\r\n '表_中表格': { typeName: '表格_中', typeRegex: new RegExp(/^[│├]/) },\r\n '表_尾表格': { typeName: '表格_尾', typeRegex: new RegExp(/^└.+┘$/) }\r\n};\r\nconst LawArticleHeaderNumberDict: { [key: string]: number } = {\r\n '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10,\r\n '11': 11, '12': 12, '13': 13, '14': 14, '15': 15, '16': 16, '17': 17, '18': 18, '19': 19, '20': 20,\r\n '21': 21, '22': 22, '23': 23, '24': 24, '25': 25, '26': 26, '27': 27, '28': 28, '29': 29, '30': 30,\r\n '31': 31, '32': 32, '33': 33, '34': 34, '35': 35, '36': 36, '37': 37, '38': 38, '39': 39, '40': 40,\r\n '41': 41, '42': 42, '43': 43, '44': 44, '45': 45, '46': 46, '47': 47, '48': 48, '49': 49, '50': 50,\r\n '51': 51, '52': 52, '53': 53, '54': 54, '55': 55, '56': 56, '57': 57, '58': 58, '59': 59, '60': 60,\r\n '61': 61, '62': 62, '63': 63, '64': 64, '65': 65, '66': 66, '67': 67, '68': 68, '69': 69, '70': 70,\r\n '71': 71, '72': 72, '73': 73, '74': 74, '75': 75,\r\n '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10,\r\n '11': 11, '12': 12, '13': 13, '14': 14, '15': 15, '16': 16, '17': 17, '18': 18, '19': 19, '20': 20,\r\n '21': 21, '22': 22, '23': 23, '24': 24, '25': 25, '26': 26, '27': 27, '28': 28, '29': 29, '30': 30,\r\n '31': 31, '32': 32, '33': 33, '34': 34, '35': 35, '36': 36, '37': 37, '38': 38, '39': 39, '40': 40,\r\n '41': 41, '42': 42, '43': 43, '44': 44, '45': 45, '46': 46, '47': 47, '48': 48, '49': 49, '50': 50,\r\n '51': 51, '52': 52, '53': 53, '54': 54, '55': 55, '56': 56, '57': 57, '58': 58, '59': 59, '60': 60,\r\n '61': 61, '62': 62, '63': 63, '64': 64, '65': 65, '66': 66, '67': 67, '68': 68, '69': 69, '70': 70,\r\n '71': 71, '72': 72, '73': 73, '74': 74, '75': 75,\r\n '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9, '十': 10,\r\n '十一': 11, '十二': 12, '十三': 13, '十四': 14, '十五': 15, '十六': 16, '十七': 17, '十八': 18, '十九': 19, '二十': 20,\r\n '二十一': 21, '二十二': 22, '二十三': 23, '二十四': 24, '二十五': 25, '二十六': 26, '二十七': 27, '二十八': 28, '二十九': 29, '三十': 30,\r\n '三十一': 31, '三十二': 32, '三十三': 33, '三十四': 34, '三十五': 35, '三十六': 36, '三十七': 37, '三十八': 38, '三十九': 39, '四十': 40,\r\n '四十一': 41, '四十二': 42, '四十三': 43, '四十四': 44, '四十五': 45, '四十六': 46, '四十七': 47, '四十八': 48, '四十九': 49, '五十': 50,\r\n '五十一': 51, '五十二': 52, '五十三': 53, '五十四': 54, '五十五': 55, '五十六': 56, '五十七': 57, '五十八': 58, '五十九': 59, '六十': 60,\r\n '六十一': 61, '六十二': 62, '六十三': 63, '六十四': 64, '六十五': 65, '六十六': 66, '六十七': 67, '六十八': 68, '六十九': 69, '七十': 70,\r\n '七十一': 71, '七十二': 72, '七十三': 73, '七十四': 74, '七十五': 75,\r\n '甲': 1, '乙': 2, '丙': 3, '丁': 4, '戊': 5, '己': 6, '庚': 7, '辛': 8, '壬': 9, '癸': 10,\r\n '子': 1, '丑': 2, '寅': 3, '卯': 4, '辰': 5, '巳': 6, '午': 7, '未': 8, '申': 9, '酉': 10, '戌': 11, '亥': 12,\r\n};\r\nconst LawArticleContentPreHandler: { [key: string]: (text: string) => string } = {\r\n '前_附表': (text) => {\r\n const lines = text.split('\\n');\r\n const resultLines = [];\r\n for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {\r\n const line = lines[lineIndex];\r\n const lineTrimed = line.trim();\r\n if (lineTrimed.match(/^表[一二三四五六七八九十]+.+[一二三四五六七八九十]+:$/)) {\r\n break;\r\n }\r\n resultLines.push(line);\r\n }\r\n return resultLines.join('\\n');\r\n },\r\n '前_斷行': (text) => {\r\n // check lines\r\n const lines = text.split('\\n');\r\n const matcherKeys = Object.keys(LawArticleLineMatcher);\r\n const startMatcherKeys = Object.keys(LawArticleLineMatcher).filter(v => v.match(/^行_/));\r\n const lineMatcherKeys = Object.keys(LawArticleLineMatcher).filter(v => v.match(/^段_/));\r\n const tableMatcherKeys = Object.keys(LawArticleLineMatcher).filter(v => v.match(/^表_/));\r\n\r\n let problemCount = 0;\r\n let fineCount = 0;\r\n let prevResult = '';\r\n let prevLineEnd = false;\r\n const resultLines = [];\r\n\r\n let prevType = '';\r\n let prevMatchKey = '';\r\n let lastMatchKey = '';\r\n let lastType = '';\r\n\r\n for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {\r\n const line = lines[lineIndex];\r\n const lineTrimed = line.trim();\r\n\r\n let hasMatch = false;\r\n let matchType = '';\r\n let matchKey = '';\r\n\r\n if (!hasMatch) {\r\n if (line.match(/^\\s{20}/)) {\r\n if (prevResult) {\r\n resultLines.push(prevResult);\r\n }\r\n resultLines.push(line);\r\n prevResult = '';\r\n continue;\r\n }\r\n }\r\n\r\n\r\n if (!hasMatch) {\r\n for (let i = 0; i < lineMatcherKeys.length; i++) {\r\n const matcher = LawArticleLineMatcher[lineMatcherKeys[i]];\r\n if (matcher.typeRegex.test(lineTrimed)) {\r\n hasMatch = true;\r\n matchKey = lineMatcherKeys[i];\r\n lastMatchKey = lineMatcherKeys[i];\r\n matchType = matcher.typeName;\r\n lastType = matcher.typeName;\r\n break;\r\n }\r\n }\r\n if (hasMatch) {\r\n fineCount++;\r\n if (prevResult) {\r\n resultLines.push(prevResult);\r\n }\r\n prevResult = line;\r\n }\r\n }\r\n\r\n if (!hasMatch) {\r\n for (let i = 0; i < startMatcherKeys.length; i++) {\r\n const matcher = LawArticleLineMatcher[startMatcherKeys[i]];\r\n if (matcher.typeRegex.test(lineTrimed)) {\r\n hasMatch = true;\r\n matchKey = startMatcherKeys[i];\r\n lastMatchKey = startMatcherKeys[i];\r\n matchType = matcher.typeName;\r\n lastType = matcher.typeName;\r\n break;\r\n }\r\n }\r\n if (hasMatch) {\r\n fineCount++;\r\n if (prevMatchKey.match(/^段_/) && prevLineEnd) {\r\n resultLines.push(prevResult);\r\n resultLines.push(line);\r\n prevResult = '';\r\n } else if (prevMatchKey.match(/^段_/) && !prevLineEnd) {\r\n prevResult += line.replace(/^\\s+/, '');\r\n resultLines.push(prevResult);\r\n prevResult = '';\r\n } else if (!prevType) {\r\n prevResult += line.replace(/^\\s+/, '');\r\n resultLines.push(prevResult);\r\n prevResult = '';\r\n } else {\r\n resultLines.push(line);\r\n prevResult = '';\r\n }\r\n }\r\n }\r\n\r\n if (!hasMatch) {\r\n for (let i = 0; i < tableMatcherKeys.length; i++) {\r\n const matcher = LawArticleLineMatcher[tableMatcherKeys[i]];\r\n if (matcher.typeRegex.test(lineTrimed)) {\r\n hasMatch = true;\r\n matchKey = tableMatcherKeys[i];\r\n lastMatchKey = tableMatcherKeys[i];\r\n matchType = matcher.typeName;\r\n lastType = matcher.typeName;\r\n break;\r\n }\r\n }\r\n if (hasMatch) {\r\n if (prevResult) {\r\n resultLines.push(prevResult);\r\n }\r\n resultLines.push(line);\r\n prevResult = '';\r\n }\r\n }\r\n\r\n\r\n\r\n if (!hasMatch) {\r\n problemCount++;\r\n // 中間行,串接前段\r\n prevResult += lineTrimed;\r\n }\r\n\r\n if (lineIndex === lines.length - 1) {\r\n if (prevResult) {\r\n resultLines.push(prevResult);\r\n }\r\n }\r\n\r\n prevMatchKey = matchKey;\r\n prevType = matchType;\r\n prevLineEnd = /。$/.test(lineTrimed);\r\n }\r\n\r\n // console.log('問題行:', problemCount, '正常行:', fineCount, 'total:', lines.length, '問題內容:', (problemCount >= (fineCount / 2)));\r\n\r\n let result = text;\r\n\r\n // if (problemCount >= (fineCount / 2)) {\r\n // result = resultLines.join('\\n');\r\n // }\r\n if (problemCount > 0) {\r\n result = resultLines.join('\\n');\r\n }\r\n\r\n return result;\r\n },\r\n};\r\n\r\n\r\nexport class LawArticleContentSpliter {\r\n\r\n constructor(text: string) {\r\n this.text = text;\r\n this.lines = [];\r\n this.flag = new LawArticleContentSpliterFlag();\r\n }\r\n text: string;\r\n lines: LawArticleContentLine[];\r\n flag: LawArticleContentSpliterFlag;\r\n\r\n isAllListLine: boolean = false;\r\n\r\n\r\n private static groupLawArticleContentLineList(list: LawArticleContentLine[]): LawArticleContentLine[] {\r\n const result = [];\r\n const deepParentLaLine = {};\r\n let prevLaLine;\r\n let parentLaLine;\r\n for (let i = 0; i < list.length; i++) {\r\n const laLine = list[i];\r\n if (laLine.newline) {\r\n result.push(laLine);\r\n } else if (laLine.deepIndex === 0) {\r\n result.push(laLine);\r\n parentLaLine = laLine;\r\n deepParentLaLine[laLine.headerType] = laLine;\r\n } else if (prevLaLine && laLine.deepIndex > prevLaLine.deepIndex) {\r\n deepParentLaLine[laLine.headerType] = prevLaLine;\r\n parentLaLine = prevLaLine;\r\n parentLaLine.subLawArticleLines.push(laLine);\r\n\r\n } else if (prevLaLine && prevLaLine.deepIndex === laLine.deepIndex) {\r\n if (!parentLaLine) {\r\n result.push(prevLaLine);\r\n result.push(laLine);\r\n } else {\r\n parentLaLine.subLawArticleLines.push(laLine);\r\n }\r\n } else if (prevLaLine && laLine.deepIndex < prevLaLine.deepIndex) {\r\n parentLaLine = deepParentLaLine[laLine.headerType];\r\n parentLaLine.subLawArticleLines.push(laLine);\r\n }\r\n else if (i == 0) {\r\n result.push(laLine);\r\n }\r\n\r\n prevLaLine = laLine;\r\n }\r\n\r\n return result;\r\n }\r\n private static convertLawArticleContentLineGroupToDom(list: LawArticleContentLine[], isSub: boolean = false): HTMLElement {\r\n // if (list.length > 1\r\n // && list[0].headerType.match(/^數/)\r\n // && list.every(line => line.headerType == list[0].headerType)\r\n // && list.every(line => line.deepIndex == 0)) {\r\n // return this.convertLawArticleContentLinesToListDom(list);\r\n // }\r\n\r\n\r\n\r\n const ulElement = document.createElement('ul');\r\n if (list.length > 1\r\n && list[0].header\r\n && !isSub) {\r\n const subUlElement = this.convertLawArticleContentLineGroupToDom(list, true);\r\n ulElement.appendChild(subUlElement);\r\n return ulElement;\r\n }\r\n\r\n for (let i = 0; i < list.length; i++) {\r\n const laLine = list[i];\r\n\r\n if (laLine.newline) {\r\n ulElement.appendChild(document.createElement('br'));\r\n continue;\r\n }\r\n\r\n\r\n const liElement = document.createElement('li');\r\n if (laLine.isTable) {\r\n liElement.setAttribute('data-table', '');\r\n }\r\n let header = '';\r\n if (laLine.header) {\r\n // const headerElement = document.createElement('div');\r\n // headerElement.className = 'law-article-item-header';\r\n // headerElement.textContent = laLine.header\r\n // .replace('(', '(')\r\n // .replace(')', ')')\r\n // .replace('.', '.');\r\n header = laLine.header\r\n .replace('(', '(')\r\n .replace(')', ')')\r\n .replace('.', '.');\r\n liElement.setAttribute('data-head', laLine.header);\r\n // liElement.appendChild(headerElement);\r\n }\r\n\r\n const textElement = document.createElement('div');\r\n textElement.className = 'text';\r\n // textElement.textContent = laLine.text.replace(/^\\s+/, '').substring(laLine.header.length);\r\n textElement.textContent = header + laLine.text.replace(/^\\s+/, '').substring(laLine.header.length);\r\n liElement.appendChild(textElement);\r\n ulElement.appendChild(liElement);\r\n\r\n if (laLine.subLawArticleLines.length > 0) {\r\n const subUlElement = this.convertLawArticleContentLineGroupToDom(laLine.subLawArticleLines, true);\r\n ulElement.appendChild(subUlElement);\r\n }\r\n }\r\n\r\n return ulElement;\r\n }\r\n private static convertLawArticleContentLinesToListDom(list: LawArticleContentLine[]): HTMLElement {\r\n const ulElement = document.createElement('ul');\r\n for (let i = 0; i < list.length; i++) {\r\n const laLine = list[i];\r\n\r\n if (laLine.newline) {\r\n ulElement.appendChild(document.createElement('br'));\r\n continue;\r\n }\r\n\r\n\r\n const liElement = document.createElement('li');\r\n if (laLine.isTable) {\r\n liElement.setAttribute('data-table', '');\r\n }\r\n if (laLine.header) {\r\n const headerElement = document.createElement('div');\r\n headerElement.className = 'law-article-item-header';\r\n headerElement.textContent = laLine.header\r\n .replace('(', '(')\r\n .replace(')', ')')\r\n .replace('.', '.');\r\n liElement.setAttribute('data-head', laLine.header);\r\n liElement.appendChild(headerElement);\r\n }\r\n\r\n const textElement = document.createElement('div');\r\n textElement.className = 'text';\r\n textElement.textContent = laLine.text.replace(/^\\s+/, '').substring(laLine.header.length);\r\n liElement.appendChild(textElement);\r\n ulElement.appendChild(liElement);\r\n\r\n if (laLine.subLawArticleLines.length > 0) {\r\n const subUlElement = this.convertLawArticleContentLineGroupToDom(laLine.subLawArticleLines, true);\r\n ulElement.appendChild(subUlElement);\r\n }\r\n }\r\n\r\n return ulElement;\r\n }\r\n static convertLawArticleTextToDom(text: string): HTMLElement {\r\n // if (text.indexOf('追訴權之時效,因起訴而停止進行') > -1) {\r\n // console.log('追訴權之時效,因起訴而停止進行');\r\n // }\r\n const spliter = new LawArticleContentSpliter(text);\r\n // if (spliter.text.indexOf('93年度起施行認罪協商制度') > -1) {\r\n // console.log(1);\r\n // }\r\n spliter.split();\r\n const lineGroup = LawArticleContentSpliter.groupLawArticleContentLineList(spliter.lines);\r\n const ulElement = LawArticleContentSpliter.convertLawArticleContentLineGroupToDom(lineGroup);\r\n return ulElement;\r\n }\r\n\r\n split(): void {\r\n this.runPreHandle();\r\n this.runSplit();\r\n this.runDeepIndex();\r\n }\r\n runPreHandle(): void {\r\n const preHandleKeys = Object.keys(LawArticleContentPreHandler).filter(v => v.match(/^前_/));\r\n for (let handlerIndex = 0; handlerIndex < preHandleKeys.length; handlerIndex++) {\r\n this.text = LawArticleContentPreHandler[preHandleKeys[handlerIndex]](this.text);\r\n }\r\n\r\n // 民事訴訟法特殊處理\r\n if (this.text == '訴經撤回者,視同未起訴。但反訴不因本訴撤回而失效力於本案經終局判決後將訴撤回者,不得復提起同一之訴。') {\r\n this.text = '訴經撤回者,視同未起訴。但反訴不因本訴撤回而失效力'\r\n + '\\n於本案經終局判決後將訴撤回者,不得復提起同一之訴。';\r\n }\r\n }\r\n runSplit(): void {\r\n this.lines = this.text.split('\\n').map((v, i) => new LawArticleContentLine(i, v));\r\n this.flag.prevType = '';\r\n this.flag.lastTypeIndex = {};\r\n\r\n const laMatcher = LawArticleLineMatcher;\r\n const matcherKeys = Object.keys(laMatcher).filter((v) => v.match(/^段_/));\r\n // var backMatcherKeys = Object.keys(laMatcher).filter((v) => v.match(/^返_/));\r\n const tableStartMatcherKeys = Object.keys(laMatcher).filter((v) => v.match(/^表_始/));\r\n const tableMiddleMatcherKeys = Object.keys(laMatcher).filter((v) => v.match(/^表_中/));\r\n const tableEndMatcherKeys = Object.keys(laMatcher).filter((v) => v.match(/^表_尾/));\r\n\r\n\r\n let isListLines = false;\r\n for (const matchKey of matcherKeys) {\r\n const matcher = laMatcher[matchKey];\r\n if (this.lines.every(laLine => matcher.typeRegex.test(laLine.textTrim))) {\r\n isListLines = true;\r\n this.lines.forEach(laLine => {\r\n const matchResult = laLine.textTrim.match(matcher.typeRegex);\r\n laLine.headerIndexText = matchResult[1];\r\n laLine.headerIndex = LawArticleHeaderNumberDict[laLine.headerIndexText];\r\n laLine.header = matchResult[0];\r\n laLine.headerType = matcher.typeName;\r\n });\r\n break;\r\n }\r\n }\r\n if (isListLines) {\r\n this.isAllListLine = true;\r\n return;\r\n }\r\n\r\n // 定義每一行種類\r\n for (let lineIndex = 0; lineIndex < this.lines.length; lineIndex++) {\r\n const laLine = this.lines[lineIndex];\r\n if (!laLine.header && laLine.textTrim.length === 0) {\r\n laLine.newline = true;\r\n continue;\r\n } else if (!this.flag.inPart && laMatcher.行_頭.typeRegex.test(laLine.textTrim)) {\r\n if (!LawArticleLineMatcher['段_數、'].typeRegex.test(laLine.textTrim)) {\r\n this.flag.inPart = true;\r\n }\r\n\r\n } else {\r\n let hasMatch = false;\r\n\r\n try {\r\n if (!hasMatch) {\r\n if (laLine.text.match(/^\\s{20}/)) {\r\n laLine.headerType = this.flag.prevType;\r\n continue;\r\n }\r\n }\r\n\r\n if (!hasMatch) {\r\n for (let j = 0; j < matcherKeys.length; j++) {\r\n const matcher = laMatcher[matcherKeys[j]];\r\n if (matcher.typeRegex.test(laLine.textTrim)) {\r\n const matchResult = laLine.textTrim.match(matcher.typeRegex);\r\n laLine.headerIndexText = matchResult[1];\r\n laLine.headerIndex = LawArticleHeaderNumberDict[laLine.headerIndexText];\r\n laLine.header = matchResult[0];\r\n laLine.headerType = matcher.typeName;\r\n\r\n if (location.href.indexOf('127.0.0.1') > -1 && !laLine.headerIndex) {\r\n console.error('empty header index');\r\n }\r\n\r\n if (this.flag.prevType === laLine.headerType\r\n && this.flag.lastTypeIndex[laLine.headerType] > 0\r\n && this.flag.lastTypeIndex[laLine.headerType] > laLine.headerIndex) {\r\n // 返回,重新設定空header行的所屬type\r\n // console.log(laLine.headerIndex);\r\n const resetLineStartIndex = this.lines.findIndex((v, i) => {\r\n return this.flag.prevTypeStartIndex < i\r\n && v.headerType === laLine.headerType\r\n && !v.header;\r\n });\r\n for (let k = resetLineStartIndex; k < lineIndex; k++) {\r\n this.lines[k].headerType = '';\r\n }\r\n }\r\n\r\n this.flag.prevType = laLine.headerType;\r\n this.flag.prevTypeStartIndex = lineIndex;\r\n this.flag.lastTypeIndex[laLine.headerType] = laLine.headerIndex;\r\n\r\n hasMatch = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (!hasMatch) {\r\n if (!this.flag.inTable) {\r\n // 檢查表格頭\r\n for (let j = 0; j < tableStartMatcherKeys.length; j++) {\r\n const matcher = laMatcher[tableStartMatcherKeys[j]];\r\n if (matcher.typeRegex.test(laLine.textTrim)) {\r\n laLine.headerType = matcher.typeName;\r\n laLine.isTable = true;\r\n\r\n this.flag.inTable = true;\r\n hasMatch = true;\r\n break;\r\n }\r\n }\r\n } else {\r\n for (let j = 0; j < tableMiddleMatcherKeys.length; j++) {\r\n const matcher = laMatcher[tableMiddleMatcherKeys[j]];\r\n if (matcher.typeRegex.test(laLine.textTrim)) {\r\n laLine.headerType = matcher.typeName;\r\n laLine.isTable = true;\r\n\r\n this.flag.inTable = true;\r\n hasMatch = true;\r\n break;\r\n }\r\n }\r\n for (let j = 0; j < tableEndMatcherKeys.length; j++) {\r\n const matcher = laMatcher[tableEndMatcherKeys[j]];\r\n if (matcher.typeRegex.test(laLine.textTrim)) {\r\n laLine.headerType = matcher.typeName;\r\n laLine.isTable = true;\r\n\r\n this.flag.inTable = false;\r\n hasMatch = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (!hasMatch) {\r\n this.flag.inTable = false;\r\n }\r\n }\r\n\r\n if (!hasMatch) {\r\n laLine.headerType = this.flag.prevType;\r\n }\r\n } catch (error) {\r\n laLine.headerType = '';\r\n }\r\n }\r\n }\r\n\r\n if (this.flag.prevTypeStartIndex > -1) {\r\n for (let i = this.flag.prevTypeStartIndex + 1; i < this.lines.length; i++) {\r\n this.lines[i].headerType = '';\r\n }\r\n }\r\n }\r\n runDeepIndex(): void {\r\n\r\n if (this.isAllListLine) {\r\n return;\r\n }\r\n\r\n\r\n\r\n // 定義分析flags\r\n Object.keys(LawArticleLineMatcher).forEach((key) => {\r\n if (/^段_/.test(key)) {\r\n this.flag.typeDeepIndex[LawArticleLineMatcher[key].typeName] = 0;\r\n }\r\n });\r\n const tableTypeDict = {};\r\n Object.keys(LawArticleLineMatcher).filter((v) => v.match(/^表_/))\r\n .forEach((key) => {\r\n tableTypeDict[LawArticleLineMatcher[key].typeName] = 1;\r\n });\r\n\r\n this.flag.prevType = '';\r\n this.flag.currentPartIndex = 0;\r\n this.flag.deepIndex = 0;\r\n\r\n // 定義每一行種類\r\n for (let lineIndex = 0; lineIndex < this.lines.length; lineIndex++) {\r\n const laLine = this.lines[lineIndex];\r\n\r\n if (laLine.newline) {\r\n continue;\r\n } else if (this.flag.prevType === laLine.headerType) {\r\n if (laLine.headerType === '' && laLine.textTrim.length > 0) {\r\n this.flag.currentPartIndex++;\r\n } else {\r\n\r\n }\r\n } else {\r\n // 與前一次種類不同\r\n // 沒有段落標頭,預測是深度0的行\r\n if (laLine.headerType === '') {\r\n this.flag.resetTypeDeepIndex();\r\n this.flag.deepIndex = 0;\r\n this.flag.currentPartIndex++;\r\n } else if (this.flag.typeDeepIndex[laLine.headerType] === 0) {\r\n // 行標頭是新出現的,向上階層沒出現過\r\n // 從現在的深度+1\r\n this.flag.deepIndex++;\r\n this.flag.typeDeepIndex[laLine.headerType] = this.flag.deepIndex;\r\n } else if (this.flag.typeDeepIndex[laLine.headerType] > 0) {\r\n // 行標頭先前出現過,且未復原深度,引用上次出現的深度\r\n this.flag.deepIndex = this.flag.typeDeepIndex[laLine.headerType];\r\n } else if (tableTypeDict[laLine.headerType]) {\r\n // this.flag.deepIndex = this.flag.deepIndex;\r\n }\r\n }\r\n\r\n laLine.deepIndex = this.flag.deepIndex;\r\n laLine.partIndex = this.flag.currentPartIndex;\r\n this.flag.prevType = laLine.headerType;\r\n }\r\n\r\n\r\n let prevTypeLine;\r\n let prevNewLine;\r\n const reList = [];\r\n for (let lineIndex = 0; lineIndex < this.lines.length; lineIndex++) {\r\n const laLine = this.lines[lineIndex];\r\n\r\n if (laLine.newline) {\r\n prevNewLine = laLine;\r\n } else if (tableTypeDict[laLine.headerType]) {\r\n if (prevNewLine) {\r\n prevTypeLine = laLine;\r\n // prevTypeLine.text += '\\n' + laLine.text;\r\n } else if (prevTypeLine) {\r\n prevTypeLine.text += '\\n' + laLine.text;\r\n continue;\r\n } else if (lineIndex === 0) {\r\n prevTypeLine = laLine;\r\n // prevTypeLine.text += '\\n' + laLine.text;\r\n // continue;\r\n } else if (lineIndex > 0) {\r\n prevTypeLine.text += '\\n' + laLine.text;\r\n continue;\r\n }\r\n } else if (laLine.deepIndex > 0) {\r\n if (laLine.header) {\r\n prevTypeLine = laLine;\r\n } else if (!laLine.header) {\r\n if (prevTypeLine) {\r\n prevTypeLine.text += '\\n' + laLine.text;\r\n continue;\r\n } else {\r\n prevTypeLine = laLine;\r\n }\r\n } else {\r\n prevTypeLine.text += '\\n' + laLine.text;\r\n continue;\r\n }\r\n } else if (laLine.deepIndex === 0 && !laLine.header) {\r\n if (laLine.textTrim.length === 0) {\r\n // prevTypeLine.text += '\\n' + laLine.text;\r\n // continue;\r\n } else if (lineIndex === 0) {\r\n prevTypeLine = laLine;\r\n } else {\r\n prevTypeLine = laLine;\r\n }\r\n }\r\n\r\n if (!laLine.newline) {\r\n prevNewLine = null;\r\n }\r\n\r\n reList.push(laLine);\r\n }\r\n\r\n this.lines = reList;\r\n }\r\n}\r\n","export enum LawArticleBlockShowType {\r\n Default = 0,\r\n Auto = 1,\r\n}\r\n","import { LawArticleItem } from './law-article-item';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { LawArticleListService } from './law-article-list.service';\r\nimport { LawRelateSystem } from '../law-rule/law-relate-system';\r\nimport { LawSystem } from '../law-rule/law-system';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { Summary } from '../summary-list/summary';\r\nimport { LawArticleBlockShowType } from './law-article-block-show-type.enum';\r\nimport { CheckInLawArticle } from '../check-in/check-in-law-article';\r\nimport { LawRule } from '../law-rule/law-rule';\r\nimport { Summary2 } from '../summary2/summary2';\r\nexport class LawArticleBlock {\r\n lawArticleListService: LawArticleListService;\r\n\r\n id: string;\r\n showHistory: boolean = false;\r\n showRelate: boolean = false;\r\n\r\n showBlockType: LawArticleBlockShowType = LawArticleBlockShowType.Default;\r\n showBlockManual: boolean = true;\r\n get showBlock(): boolean {\r\n if (this.showBlockType === LawArticleBlockShowType.Default) {\r\n return this.showBlockManual;\r\n } else if (this.showBlockType === LawArticleBlockShowType.Auto) {\r\n return this.selected || this.checkBlockInViewWindowClient();\r\n }\r\n }\r\n\r\n // margin: string = '15px 30px 15px 20px';\r\n style: any = {} as any;\r\n top: number = 0;\r\n bottom: number = 0;\r\n height: number = 0;\r\n\r\n offsetTopGetter: () => number;\r\n\r\n\r\n\r\n\r\n get selected(): boolean { \r\n return this.lawArticleListService?.selectedLawArticleBlock == this;\r\n }\r\n lawSystem: LawSystem;\r\n lawArticleItem: LawArticleItem;\r\n lawArticleItemList: LawArticleItem[];\r\n lawRelateRule: { law_rule_name: string, list: LawRelateSystem[] }[];\r\n waitLawRelateRequest: boolean = false;\r\n\r\n // summaryLinkCount: number = 0;\r\n linkedSummaryList: Summary[] = [];\r\n linkedContentSummaryList: Summary[] = [];\r\n linkedArticleSummaryList: Summary[] = [];\r\n linkedSummart2List: Summary2[] = [];\r\n // get linkedContentSummaryList(): Summary[] { return this.linkedSummaryList.filter(v => v.linkStartTextIndex > -1 && v.linkEndTextIndex > -1); }\r\n // get linkedArticleSummaryList(): Summary[] { return this.linkedSummaryList.filter(v => v.linkStartTextIndex === -1 && v.linkEndTextIndex === -1); }\r\n // selfClick: boolean = false;\r\n\r\n\r\n\r\n\r\n\r\n checkIn: CheckInLawArticle;\r\n checkInButtonId: string;\r\n get checkInButtonElement(): HTMLElement { return document.getElementById(this.checkInMenuId); }\r\n checkInMenuId: string;\r\n get checkInMenuElement(): HTMLElement { return document.getElementById(this.checkInMenuId); }\r\n\r\n showCheckInMenu: boolean = false;\r\n onCheckInMenuShow: () => void;\r\n onCheckInMenuHide: () => void;\r\n registeCheckInMenuClickEvent: (ev: MouseEvent) => void;\r\n checkInTotalCount: number = 0;\r\n // get checkInTotalCount(): number {\r\n // if (this.checkIn) {\r\n // return this.checkIn.total_count;\r\n // }\r\n // return 0;\r\n // }\r\n checkInStatusClassName: string = '';\r\n // get checkInStatusClassName(): string {\r\n // if (this.checkIn) {\r\n // return CheckInLawArticle.statusClassNameDict[this.checkIn.status] || '';\r\n // }\r\n // return '';\r\n // }\r\n get checkInTodayChecked(): boolean {\r\n if (this.checkIn) {\r\n return this.checkIn.today_checked;\r\n }\r\n return true;\r\n }\r\n onOpenCheckInDetailDataPopup: () => void;\r\n\r\n\r\n // checkInList: LawRuleCheckIn[] = [];\r\n\r\n\r\n constructor() {\r\n // this.selected = false;\r\n this.showHistory = false;\r\n this.id = Guid.newGuid();\r\n }\r\n\r\n closeHistory(): void {\r\n this.showHistory = false;\r\n }\r\n closeRelate(): void {\r\n this.showRelate = false;\r\n }\r\n\r\n\r\n clickBlock(): void {\r\n // this.selfClick = true;\r\n // setTimeout(() => this.selfClick = false, 100);\r\n\r\n // if (this.lawArticleListService.selectedLawArticleBlock\r\n // && this.lawArticleListService.selectedLawArticleBlock !== this) {\r\n // this.lawArticleListService.selectedLawArticleBlock.showHistory = false;\r\n // this.lawArticleListService.selectedLawArticleBlock.showRelate = false;\r\n // }\r\n // this.lawArticleListService.selectedLawArticleBlock = this;\r\n\r\n // this.lawSystem.select();\r\n console.log(this);\r\n this.lawArticleListService.selectBlock(this);\r\n }\r\n // select(): void {\r\n // // if (this.lawArticleListService.selectedLawArticleBlock\r\n // // && this.lawArticleListService.selectedLawArticleBlock !== this) {\r\n // // this.lawArticleListService.selectedLawArticleBlock.showHistory = false;\r\n // // this.lawArticleListService.selectedLawArticleBlock.showRelate = false;\r\n // // }\r\n // // this.lawArticleListService.selectedLawArticleBlock = this;\r\n // // this.lawSystem.select();\r\n // }\r\n scrollIntoView(): void {\r\n // if (this.selfClick) { return; }\r\n const element = document.getElementById(this.id);\r\n if (element) {\r\n ElementScroll.intoView(element, '20%');\r\n // element.scrollIntoView({ 'behavior': 'smooth' });\r\n // setTimeout(() => {\r\n // element.scrollIntoView({});\r\n // }, 300);\r\n }\r\n }\r\n // 由清單控制\r\n // updateBlockTopAndSize(): void {\r\n // const element = document.getElementById(this.id);\r\n // if (element) {\r\n // this.top = element.offsetTop;\r\n // this.height = element.clientHeight;\r\n // }\r\n // }\r\n checkBlockInViewWindowClient(): boolean {\r\n const offsetTop = this.offsetTopGetter();\r\n const height = document.body.clientHeight;\r\n const renderDistance = 100;\r\n const viewTop = 0 - renderDistance;\r\n const viewBottom = height + renderDistance;\r\n const top = this.top + offsetTop;\r\n const bottom = top + this.height;\r\n if (top <= viewBottom && viewTop <= bottom) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n toggleShowCheckInMenu(): void {\r\n this.showCheckInMenu = !this.showCheckInMenu;\r\n if (this.showCheckInMenu) {\r\n this.onCheckInMenuShow();\r\n } else {\r\n this.onCheckInMenuHide();\r\n }\r\n }\r\n checkInLawArticle(status: number): void {\r\n setTimeout(() => {\r\n this.checkInTotalCount++;\r\n this.checkInStatusClassName = CheckInLawArticle.statusClassNameDict[status] || '';\r\n this.checkIn.today_checked = true;\r\n this.checkIn.total_count++;\r\n // this.showCheckInMenu = true;\r\n }, 1);\r\n\r\n this.checkIn.onCheckIn(status);\r\n }\r\n\r\n\r\n\r\n\r\n static convertLawRule_LawArticleBlocks(lawRule: LawRule): LawArticleBlock[] {\r\n const list = lawRule.lawSystemArticleList.map(system => {\r\n const block = new LawArticleBlock();\r\n const lastLawArticle = lawRule.lawArticleDict[system.source.aid];\r\n block.lawSystem = system;\r\n\r\n block.lawArticleItemList = system.source.aids.map(aid => {\r\n const lawArticle = lawRule.lawArticleDict[aid];\r\n return LawArticleItem.create(\r\n lawRule.lawLegislationDict[lawArticle.source.lid],\r\n system,\r\n lawArticle,\r\n block\r\n );\r\n });\r\n // block.lawArticleItemList.sort((a, b) => b.lawArticle.source.lid - a.lawArticle.source.lid);\r\n\r\n block.lawArticleItem = block.lawArticleItemList.find(v => v.lawArticle.source.aid === system.source.aid);\r\n\r\n if (!block.lawArticleItem) {\r\n console.error('block lawArticleItem null, target aid:' + system.source.aid, block);\r\n }\r\n\r\n // block.lawArticleListService = this;\r\n\r\n return block;\r\n });\r\n\r\n return list;\r\n }\r\n}\r\n","import { LawArticleItem } from './law-article-item';\r\nimport { TextStyle } from 'projects/lwlib/src/text-style/text-style';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { LawArticleContentSpliter } from '../law-article-content-spliter/law-article-content-spliter';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { TextIndexNode } from 'projects/lwlib/src/text-style/text-index-node';\r\nimport { LawArticleBuildLineData } from '../law-rule/law-rule';\r\n\r\nexport class LawArticleContent {\r\n lawArticleItem: LawArticleItem;\r\n id: string;\r\n element: HTMLElement;\r\n /** 顯示用html,如果要關鍵字高亮,先更新 highlightHtml 在 html = highlightHtml */\r\n html: string;\r\n /** 原始內文html,有包含字型紀錄 */\r\n sourceHtml: string;\r\n /** 關鍵字高亮用html */\r\n highlightHtml: string;\r\n /** 紀錄高亮中的關鍵字,不會直接用在html上,這裡只是拿來判斷當前的字用 */\r\n highlightKeyword: string = '';\r\n\r\n contentEditable: boolean = false;\r\n textStyleList: TextStyle[] = [];\r\n contentId2: string;\r\n textIndexNodeList: TextIndexNode[] = [];\r\n textContent: string = '';\r\n isCustom: boolean = false;\r\n\r\n static highlightStyleColor = '#f00';\r\n\r\n\r\n elementId: string;\r\n\r\n constructor() {\r\n this.id = Guid.newGuid();\r\n this.elementId = Guid.newGuid();\r\n }\r\n\r\n setElementFromContentBuildDatas(datas: LawArticleBuildLineData[]): void {\r\n const contentRootElement = document.createElement('div');\r\n contentRootElement.className = 'article-content-root';\r\n\r\n let hasPara = false;\r\n for (let i = 0; i < datas.length; i++) {\r\n const data = datas[i];\r\n const lineElement = document.createElement('div');\r\n lineElement.textContent = data.text;\r\n\r\n // ml_count\r\n let mlCount = 0;\r\n if (data.ml_count) {\r\n mlCount = data.ml_count;\r\n }\r\n\r\n // ti_count\r\n let tiCount = 0;\r\n if (data.ti_count) {\r\n tiCount = data.ti_count;\r\n }\r\n\r\n const mlV = (mlCount + tiCount) * 0.5;\r\n const tiV = (tiCount) * -0.5;\r\n\r\n lineElement.style.marginLeft = `${mlV}em`;\r\n lineElement.style.textIndent = `${tiV}em`;\r\n\r\n // paragraph_number\r\n if (data.paragraph_number != null) {\r\n lineElement.classList.add('paragraph');\r\n hasPara = true;\r\n }\r\n\r\n // pre\r\n if (data.pre != null) {\r\n lineElement.classList.add('text-block');\r\n }\r\n\r\n contentRootElement.appendChild(lineElement);\r\n }\r\n\r\n if (hasPara) {\r\n contentRootElement.classList.add('has-paragraph');\r\n }\r\n\r\n this.element = contentRootElement;\r\n this.textIndexNodeList = TextStyle.getTextIndexNodeListFromElement(this.element);\r\n this.textContent = datas.map(v => v.text).join('');\r\n }\r\n setElementFromContentString(text: string): void {\r\n this.element = LawArticleContentSpliter.convertLawArticleTextToDom(text);\r\n this.textIndexNodeList = TextStyle.getTextIndexNodeListFromElement(this.element);\r\n this.textContent = this.textIndexNodeList.map(v => v.text).join('');\r\n const childrenList = Array.from(this.element.children);\r\n if (childrenList.filter(v => v.tagName === 'LI').length === 1) {\r\n childrenList.find(v => v.tagName === 'LI').setAttribute('data-no-type', '');\r\n }\r\n }\r\n updateHtml(): void {\r\n this.html = this.element.outerHTML;\r\n this.sourceHtml = this.element.outerHTML;\r\n }\r\n updateHighlightHtml(keyword: string): void {\r\n const element = document.getElementById(this.elementId);\r\n if (element == null) {\r\n return;\r\n }\r\n\r\n this.highlightKeyword = keyword;\r\n if (this.highlightKeyword == '') {\r\n this.html = this.sourceHtml;\r\n this.highlightHtml = '';\r\n return;\r\n }\r\n\r\n const _element = document.createElement('div');\r\n _element.innerHTML = this.sourceHtml;\r\n // 先執行一次 normalize 把底下分散的textNode全部合併起來\r\n _element.normalize();\r\n const elementText = _element.textContent;\r\n const textNodes: Text[] = TextStyle.findTextNodesFromElement(_element);\r\n\r\n if (textNodes.length == 0) {\r\n return;\r\n }\r\n\r\n /** 處理中的 textNode 清單索引 */\r\n let handleTextNodeIndex = 0;\r\n /** 當前 textNode 的第一字位置 */\r\n let handleTextNodeStart_IndexOfAllText = 0;\r\n /** 當前 textNode 的最後字位置 */\r\n let handleTextNodeStop_IndexOfAllText = 0;\r\n /** 搜尋到的關鍵字,第一字位置 */\r\n let keywordStart_IndexOfAllText = 0;\r\n /** 搜尋到的關鍵字,最後字位置 */\r\n let keywordStop_IndexOfAllText = 0;\r\n /** 防止同個內文異常造成無限迴圈 */\r\n let loopCount = 0;\r\n while (keywordStart_IndexOfAllText != -1) {\r\n loopCount++;\r\n if (loopCount > 999) {\r\n break;\r\n }\r\n\r\n // 設定搜尋到的關鍵字開始位置\r\n keywordStart_IndexOfAllText = elementText.indexOf(keyword, keywordStart_IndexOfAllText);\r\n if (keywordStart_IndexOfAllText == -1) {\r\n break;\r\n }\r\n keywordStop_IndexOfAllText = keywordStart_IndexOfAllText + keyword.length - 1;\r\n\r\n // 接續上次定位textNode\r\n while (handleTextNodeIndex < textNodes.length) {\r\n const node = textNodes[handleTextNodeIndex];\r\n handleTextNodeStop_IndexOfAllText = handleTextNodeStart_IndexOfAllText + node.nodeValue.length - 1;\r\n\r\n /**\r\n * 檢查當前node是否有接觸到keyword,沒有就繼續下一個node檢查\r\n * 接觸判斷是node停止位置在keyword起始以後\r\n * keyword[停止] 或是 key[停止]word 或是 k[停止]eyword\r\n */\r\n if (handleTextNodeStop_IndexOfAllText < keywordStart_IndexOfAllText) {\r\n handleTextNodeStart_IndexOfAllText = handleTextNodeStop_IndexOfAllText + 1;\r\n handleTextNodeIndex++;\r\n continue;\r\n }\r\n\r\n /**\r\n * 目前 node 有接觸到 keyword 位置\r\n * 要做接觸處理\r\n * 先檢查接觸開頭位置\r\n * 在檢查接觸停止位置\r\n */\r\n\r\n /**\r\n * [開始]....keyword\r\n * node 開始點在 keyword 之前, 要做拆分, 拆分之後用 continue 進行下一個 node 檢查\r\n */\r\n if (handleTextNodeStart_IndexOfAllText < keywordStart_IndexOfAllText) {\r\n // 關鍵字之前的node\r\n const beforeKeywordNode = node;\r\n const textNodeKeywordStartIndex = keywordStart_IndexOfAllText - handleTextNodeStart_IndexOfAllText;\r\n const keywordNode = node.splitText(textNodeKeywordStartIndex);\r\n\r\n /**\r\n * handleTextNodeStart_IndexOfAllText 沒變化\r\n * handleTextNodeStop_IndexOfAllText 更新到拆分的關鍵字之前的 node 停止位置\r\n */\r\n handleTextNodeStop_IndexOfAllText = handleTextNodeStart_IndexOfAllText + beforeKeywordNode.length - 1;\r\n\r\n /**\r\n * 現在 handleTextNodeIndex 是指著 beforeKeywordNode\r\n * handleTextNodeIndex++ 之後指向 keywordNode\r\n * handleTextNodeStart_IndexOfAllText 設定 keywordNode 的開始位置 (就是下一個 node 開始位置)\r\n * 進行下一輪檢查\r\n */\r\n textNodes.splice(handleTextNodeIndex, 1, beforeKeywordNode, keywordNode);\r\n handleTextNodeIndex++;\r\n handleTextNodeStart_IndexOfAllText = keywordStart_IndexOfAllText;\r\n continue;\r\n }\r\n\r\n /**\r\n * [開始]keyword\r\n * node 開始跟 keyword 開始同個位置\r\n * 不用特別動作,繼續下一個停止位置檢查\r\n */\r\n if (handleTextNodeStart_IndexOfAllText == keywordStart_IndexOfAllText) { }\r\n\r\n /**\r\n * key[停止]word 或 keyword[停止]\r\n * node 停止位置在 keyword 中間, 或是剛好在keyword停止位置\r\n * 也代表 node 開始到停止位置都在 keyword 範圍內\r\n * 可以直接設定當前 node 高亮\r\n */\r\n if (handleTextNodeStop_IndexOfAllText <= keywordStop_IndexOfAllText) {\r\n const tempNode = document.createTextNode('');\r\n node.before(tempNode);\r\n\r\n const highlightContainer = document.createElement('span');\r\n highlightContainer.style.color = LawArticleContent.highlightStyleColor;\r\n highlightContainer.appendChild(node);\r\n\r\n tempNode.after(highlightContainer);\r\n tempNode.remove();\r\n\r\n /**\r\n * 設定下一個 node 跟開始位置\r\n */\r\n handleTextNodeIndex += 1;\r\n handleTextNodeStart_IndexOfAllText = handleTextNodeStop_IndexOfAllText + 1;\r\n continue;\r\n }\r\n\r\n /**\r\n * keyword....[停止]\r\n * node 開始位置在 keyword 範圍內\r\n * 且 node 停止在 keyword 停止之後\r\n * 往前拆分 keyword, 同時設定拆分前段的 keyword 高亮\r\n */\r\n if (keywordStop_IndexOfAllText < handleTextNodeStop_IndexOfAllText) {\r\n const keywordNode = node;\r\n const textNodeKeywordStopIndex = keywordStop_IndexOfAllText - handleTextNodeStart_IndexOfAllText + 1;\r\n const afterKeywordNode = node.splitText(textNodeKeywordStopIndex);\r\n\r\n const highlightContainer = document.createElement('span');\r\n highlightContainer.style.color = LawArticleContent.highlightStyleColor;\r\n highlightContainer.appendChild(keywordNode);\r\n\r\n afterKeywordNode.before(highlightContainer);\r\n\r\n /**\r\n * 把拆分 node 加入 清單\r\n * 設定下一個 node 跟開始位置\r\n */\r\n textNodes.splice(handleTextNodeIndex, 1, keywordNode, afterKeywordNode);\r\n handleTextNodeIndex += 1;\r\n handleTextNodeStart_IndexOfAllText = keywordStop_IndexOfAllText + 1;\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n\r\n keywordStart_IndexOfAllText = keywordStop_IndexOfAllText + 1;\r\n\r\n }\r\n\r\n this.highlightHtml = _element.innerHTML;\r\n this.html = this.highlightHtml;\r\n }\r\n updateTextStyleList(): void {\r\n this.textStyleList = TextStyle.getTextStyleListFromElement(this.element);\r\n }\r\n expandTop(): void {\r\n if (this === this.lawArticleItem.reason\r\n || !this.lawArticleItem.isFirst) {\r\n if (!this.lawArticleItem.lawArticleBlock.showHistory) {\r\n this.lawArticleItem.lawArticleBlock.showHistory = true;\r\n }\r\n }\r\n }\r\n scrollIntoView(): void {\r\n const element = document.getElementById(this.id);\r\n if (element) {\r\n ElementScroll.intoView(element, '30%');\r\n // element.scrollIntoView({ 'behavior': 'auto' });\r\n // setTimeout(() => {\r\n // element.scrollIntoView({});\r\n // }, 300);\r\n }\r\n }\r\n}\r\n","import { LawArticleContentSpliter } from '../law-article-content-spliter/law-article-content-spliter';\r\nimport { LawArticleBlock } from './law-article-block';\r\nimport { LawLegislation } from '../law-rule/law-legislation';\r\nimport { LawSystem } from '../law-rule/law-system';\r\nimport { LawArticle } from '../law-rule/law-article';\r\nimport { LawStatus } from '../law-rule/law-status';\r\nimport { LawRuleStatusId } from '../law-rule/law-rule-status-id.enum';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { TextStyle } from 'projects/lwlib/src/text-style/text-style';\r\nimport { LawArticleContent } from './law-article-content';\r\n\r\nexport class LawArticleItem {\r\n lawLegislation: LawLegislation;\r\n lawSystem: LawSystem;\r\n lawArticle: LawArticle;\r\n\r\n lawArticleBlock: LawArticleBlock;\r\n\r\n numberName: string;\r\n title: string;\r\n\r\n isFirst: boolean;\r\n\r\n get hasStatusModify(): boolean {\r\n return this.lawLegislation.lawStatusModify != null\r\n && this.lawLegislation.lawStatusModify.getDateText() !== '';\r\n }\r\n get hasStatusPublic(): boolean {\r\n return this.lawLegislation.lawStatusPublic != null\r\n && this.lawLegislation.lawStatusPublic.getDateText() !== '';\r\n }\r\n get hasStatusForce(): boolean {\r\n return this.lawLegislation.lawStatusForce != null\r\n && this.lawLegislation.lawStatusForce.getDateText() !== '';\r\n }\r\n get hasStatusEffect(): boolean {\r\n return this.lawLegislation.lawStatusEffect != null\r\n && this.lawLegislation.lawStatusEffect.getDateText() !== '';\r\n }\r\n\r\n get hasContent(): boolean { return this.lawArticle.source.law_article_content && this.lawArticle.source.law_article_content.length > 0; }\r\n get hasReason(): boolean { return this.lawArticle.source.law_article_reason && this.lawArticle.source.law_article_reason.length > 0; }\r\n\r\n content: LawArticleContent;\r\n reason: LawArticleContent;\r\n\r\n\r\n // contentElementId: string;\r\n // reasonElementId: string;\r\n\r\n // // get contentElement(): HTMLElement { return document.getElementById(this.contentElementId); }\r\n // // get reasonElement(): HTMLElement { return document.getElementById(this.reasonElementId); }\r\n\r\n\r\n // /** item內部用的element,文字編輯相關都用這element的outerHTML輸出到contentHTML */\r\n // itemContentElement: HTMLElement;\r\n // itemReasonElement: HTMLElement;\r\n\r\n // // get contentHtml(): string { return this.itemContentElement.outerHTML; }\r\n // // get reasonHtml(): string { return this.itemReasonElement.outerHTML; }\r\n // contentHtml: string;\r\n // reasonHtml: string;\r\n\r\n // contentEditable: boolean = false;\r\n\r\n // contentTextStyleList: TextStyle[] = [];\r\n // reasonTextStyleList: TextStyle[] = [];\r\n\r\n\r\n static create(\r\n lawLegislation: LawLegislation,\r\n lawSystem: LawSystem,\r\n lawArticle: LawArticle,\r\n lawArticleBlock: LawArticleBlock,\r\n ): LawArticleItem {\r\n const lawArticleItem: LawArticleItem = new LawArticleItem();\r\n\r\n lawArticleItem.lawLegislation = lawLegislation;\r\n lawArticleItem.lawSystem = lawSystem;\r\n lawArticleItem.lawArticle = lawArticle;\r\n\r\n lawArticleItem.lawArticleBlock = lawArticleBlock;\r\n\r\n lawArticleItem.isFirst = lawSystem.source.aids[0] === lawArticle.source.aid;\r\n\r\n lawArticleItem.numberName = '第' + lawSystem.source.law_system_number + '條';\r\n if (lawSystem.source.law_system_subnumber > 0) {\r\n lawArticleItem.numberName += '之' + lawSystem.source.law_system_subnumber;\r\n }\r\n\r\n lawArticleItem.title = '';\r\n if (lawSystem.source.law_system_title) {\r\n lawArticleItem.title = '(' + lawSystem.source.law_system_title + ')';\r\n }\r\n\r\n // lawArticleItem.hasStatusModify = lawLegislation.lawStatusModify != null;\r\n // lawArticleItem.hasStatusPublic = lawLegislation.lawStatusPublic != null;\r\n // lawArticleItem.hasStatusForce = lawLegislation.lawStatusForce != null;\r\n // lawArticleItem.hasStatusEffect = lawLegislation.lawStatusEffect != null;\r\n\r\n\r\n lawArticleItem.content = new LawArticleContent;\r\n lawArticleItem.content.contentId2 = lawArticleItem.lawArticle.source.law_article_id2 + '-content';\r\n lawArticleItem.content.lawArticleItem = lawArticleItem;\r\n\r\n // 檢查內容格式\r\n let contentText = lawArticle.source.law_article_content;\r\n\r\n // if (contentText.match(/追訴權之時效,因起訴而停止進行/)) {\r\n // console.log(contentText);\r\n // }\r\n\r\n\r\n // 新法條內容格式\r\n if (lawArticle.source.is_content_custom) {\r\n // 建立法條內文\r\n lawArticleItem.content.isCustom = true;\r\n lawArticleItem.content.setElementFromContentBuildDatas(lawArticle.source.law_article_content_custom);\r\n lawArticleItem.content.updateHtml();\r\n\r\n } else if (lawArticleItem.lawLegislation.lawRule.source.law_source === 1) {\r\n // 全國法規格式\r\n contentText = contentText.replace(/\\n([:。])/gm, '$1');\r\n contentText = contentText.replace(/$\\n[ ]+/gm, '');\r\n contentText = contentText.replace(/([^:。) ])\\n([^:。)])/gm, '$1$2');\r\n\r\n lawArticleItem.content.setElementFromContentString(contentText);\r\n lawArticleItem.content.updateHtml();\r\n\r\n } else {\r\n // 立法院格式\r\n if(contentText=='  訴經撤回者,視同未起訴。但反訴不因本訴撤回而失效力\\n  於本案經終局判決後將訴撤回者,不得復提起同一之訴。'){\r\n console.log(contentText); \r\n }\r\n\r\n\r\n lawArticleItem.content.setElementFromContentString(contentText);\r\n lawArticleItem.content.updateHtml();\r\n\r\n }\r\n\r\n if (contentText.startsWith('汽車定期檢驗之項目及基準,依下列規定')) {\r\n // const m = lawArticleItem.lawLegislation.source.law_status_modify;\r\n // console.log(m.law_status_year + '/' + m.law_status_month + '/' + m.law_status_day);\r\n console.log('aid2:' + lawArticle.source.aid + ' ,' + lawArticleItem.numberName);\r\n console.log(lawArticleItem.content.element);\r\n\r\n }\r\n\r\n\r\n\r\n if (lawArticle.source.law_article_reason) {\r\n lawArticleItem.reason = new LawArticleContent;\r\n lawArticleItem.reason.contentId2 = lawArticleItem.lawArticle.source.law_article_id2 + '-reason';\r\n lawArticleItem.reason.lawArticleItem = lawArticleItem;\r\n\r\n let reasonText = lawArticle.source.law_article_reason;\r\n if (lawArticleItem.lawLegislation.lawRule.source.law_source === 1) {\r\n reasonText = reasonText.replace(/\\n([:。])/gm, '$1');\r\n reasonText = reasonText.replace(/$\\n[ ]+/gm, '');\r\n reasonText = reasonText.replace(/([^:。)])\\n([^:。)])/gm, '$1$2');\r\n }\r\n lawArticleItem.reason.setElementFromContentString(reasonText);\r\n\r\n lawArticleItem.reason.updateHtml();\r\n }\r\n\r\n // // lawArticleItem.contentElement\r\n // lawArticleItem.itemContentElement = LawArticleContentSpliter.convertLawArticleTextToDom(lawArticle.source.law_article_content);\r\n // const contentChildrenList = Array.from(lawArticleItem.itemContentElement.children);\r\n // if (contentChildrenList.filter(v => v.tagName === 'LI').length === 1) {\r\n // contentChildrenList.find(v => v.tagName === 'LI')\r\n // .setAttribute('data-no-type', '');\r\n // }\r\n // // lawArticleItem.contentHtml = lawArticleItem.itemContentElement.outerHTML;\r\n\r\n // if (lawArticle.source.law_article_reason) {\r\n // // lawArticleItem.reasonElement\r\n // lawArticleItem.itemReasonElement = LawArticleContentSpliter.convertLawArticleTextToDom(lawArticle.source.law_article_reason);\r\n // const reasonChildrenList = Array.from(lawArticleItem.itemReasonElement.children);\r\n // if (reasonChildrenList.filter(v => v.tagName === 'LI').length === 1) {\r\n // reasonChildrenList.find(v => v.tagName === 'LI')\r\n // .setAttribute('data-no-type', '');\r\n // }\r\n // // lawArticleItem.reasonHtml = lawArticleItem.itemReasonElement.outerHTML;\r\n // }\r\n // lawArticleItem.contentElementId = Guid.newGuid();\r\n // lawArticleItem.reasonElementId = Guid.newGuid();\r\n // lawArticleItem.updateElementHtml();\r\n\r\n return lawArticleItem;\r\n }\r\n\r\n // updateElementHtml(): void {\r\n // if (this.itemContentElement) {\r\n // this.contentHtml = this.itemContentElement.outerHTML;\r\n // }\r\n // if (this.itemReasonElement) {\r\n // this.reasonHtml = this.itemReasonElement.outerHTML;\r\n // }\r\n // }\r\n\r\n getStatusText(status: LawStatus, subTime: boolean, ifNullStatusText: string = ''): string {\r\n // this.lawLegislation.law_status_modify\r\n // let text = `民國45年12月23日全文修正`\r\n\r\n const s = status;\r\n let text = '民國';\r\n if (s.source.law_status_year > 0) {\r\n text += s.source.law_status_year + '年';\r\n }\r\n if (s.source.law_status_month > 0) {\r\n text += (s.source.law_status_month > 0 ? s.source.law_status_month : 1) + '月';\r\n }\r\n if (s.source.law_status_day > 0) {\r\n text += (s.source.law_status_day > 0 ? s.source.law_status_day : 1) + '日';\r\n }\r\n if (s.source.law_status_name_id > 0) {\r\n text += LawStatus.idName[LawRuleStatusId[s.source.law_status_name_id]];\r\n } else {\r\n text += ifNullStatusText;\r\n }\r\n\r\n if (subTime) {\r\n text = `(${text})`;\r\n }\r\n\r\n return text;\r\n }\r\n}","import { Component, OnInit, ViewChildren, QueryList, ElementRef, AfterViewInit, ViewEncapsulation, ViewChild, HostListener } from '@angular/core';\r\nimport { LawArticleBlock } from './law-article-block';\r\nimport { Subject, of, Observable } from 'rxjs';\r\nimport { RelateLawRulePopupOpenerService } from '../relate-law-rule-popup/relate-law-rule-popup-opener.service';\r\nimport { LawArticleListService } from './law-article-list.service';\r\nimport { LawRuleService } from '../law-rule/law-rule.service';\r\nimport { LawArticleContent } from './law-article-content';\r\nimport { TextStyle } from 'projects/lwlib/src/text-style/text-style';\r\nimport { SearcherLawRuleFulltextItem } from '../search-tool/search-tool-searcher-law-rule-fulltext/searcher-law-rule-fulltext-item';\r\nimport { Summary } from '../summary-list/summary';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { SearcherLawRuleFulltextResultTypeId } from '../search-tool/search-tool-searcher-law-rule-fulltext/searcher-law-rule-fulltext-result-type-id.enum';\r\nimport { LawRule } from '../law-rule/law-rule';\r\nimport { LawArticleBlockShowType } from './law-article-block-show-type.enum';\r\nimport { delay, concatMap } from 'rxjs/operators';\r\nimport { CheckLightFilterConfig } from '../check-light-filter-popup/check-light-filter-config';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\n\r\n@Component({\r\n selector: 'app-law-article-list',\r\n templateUrl: './law-article-list.component.html',\r\n styleUrls: ['./law-article-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [LawArticleListService],\r\n})\r\nexport class LawArticleListComponent implements OnInit, AfterViewInit {\r\n lawArticleBlockShowType: any = LawArticleBlockShowType;\r\n\r\n list: LawArticleBlock[];\r\n allList: LawArticleBlock[];\r\n isInFilter: boolean = false;\r\n\r\n // get list(): LawArticleBlock[] { return this.lawArticleListService.list; }\r\n // get list(): LawArticleBlock[] { return this.lawArticleListService.list.slice(0, 100); }\r\n get blockDict(): { [key: string]: LawArticleBlock } { return this.lawArticleListService.blockElementIdDict; }\r\n get selectedLawArticleBlock(): LawArticleBlock { return this.lawArticleListService.selectedLawArticleBlock; }\r\n set selectedLawArticleBlock(value) { this.lawArticleListService.selectedLawArticleBlock = value; }\r\n get lawRule(): LawRule { return this.lawArticleListService.lawRule; }\r\n\r\n blockShowType: LawArticleBlockShowType = LawArticleBlockShowType.Default;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private relateLawRulePopupOpenerService: RelateLawRulePopupOpenerService,\r\n public lawArticleListService: LawArticleListService,\r\n private lawRuleService: LawRuleService,\r\n public service: AppService,\r\n ) {\r\n // this._lawArticleListService = lawArticleListService;\r\n }\r\n\r\n\r\n\r\n @ViewChildren('lawArticleItemElement') lawArticleItemElements: QueryList>;\r\n @ViewChild('listElement', { static: true }) listElementRef: ElementRef;\r\n\r\n element: Element;\r\n elementRect: ClientRect;\r\n\r\n /** 畫面外遮擋 */\r\n // lastView: any = {\r\n // top: 0,\r\n // bottom: 0\r\n // };\r\n // lawArticleViewList$: Subject = new Subject();\r\n // lawArticleViewList: LawArticleView[];\r\n // inViewList: LawArticleView[] = [];\r\n // filler: any = {\r\n // topHeight: '0px',\r\n // bottomHeight: '0px'\r\n // };\r\n\r\n enableDate: boolean = true;\r\n enableLawRuleName: boolean = false;\r\n enableViewRender: boolean = false;\r\n\r\n dateModify: string = '';\r\n datePublic: string = '';\r\n\r\n lockedElement: any;\r\n lockedLawArticleContent: LawArticleContent;\r\n\r\n summaryHighlightCanvasWrapperElement: HTMLElement;\r\n\r\n selectLinkedSummaryIndex: number = 0;\r\n\r\n highlightedLawArticleContentList: LawArticleContent[] = [];\r\n\r\n listHeight: number;\r\n get listHeightPx(): string { return this.listHeight == null ? '' : `${this.listHeight}px`; }\r\n\r\n _checkIn: (law_rule_id: string, number: number, subnumber: number, status: number) => void;\r\n\r\n ngOnInit() {\r\n this.element = this.elementRef.nativeElement;\r\n this.elementRect = this.element.getBoundingClientRect();\r\n // this.lawArticleListService.list$.subscribe(list => {\r\n // // this.list = list;\r\n // this.setupList(list);\r\n // });\r\n console.log(this.lawArticleListService);\r\n\r\n // console.warn('測試中,LawArticleListComponent限制法條數量50');\r\n }\r\n ngAfterViewInit(): void { }\r\n\r\n setupList(list: LawArticleBlock[]): void {\r\n const initDelay: number = 0;\r\n console.log('init article list');\r\n\r\n const setupSubsc = of(1)\r\n .pipe(\r\n concatMap(v => {\r\n // 重新設定清單高度\r\n this.listHeight = null;\r\n // 延遲,等待頁面渲染\r\n return of(true).pipe(delay(initDelay));\r\n }),\r\n concatMap(v => {\r\n this.list = list;\r\n this.list.forEach(block => {\r\n block.top = 0;\r\n block.height = 0;\r\n block.style = {};\r\n block.offsetTopGetter = () => 0;\r\n });\r\n // 延遲,等待頁面渲染\r\n return of(true).pipe(delay(initDelay));\r\n }),\r\n concatMap(v => {\r\n if (this.enableViewRender) {\r\n this.listHeight = this.listElementRef.nativeElement.clientHeight;\r\n }\r\n // 延遲,等待頁面渲染\r\n return of(true).pipe(delay(initDelay));\r\n }),\r\n concatMap(v => {\r\n if (this.enableViewRender) {\r\n this.lawArticleListService._selectedLawArticleBlock$.subscribe(block => {\r\n this.updateAllBlockVirtualTopAndSize();\r\n });\r\n }\r\n\r\n // 延遲,等待頁面渲染\r\n return of(true).pipe(delay(initDelay));\r\n }),\r\n concatMap(v => {\r\n if (this.enableViewRender) {\r\n this.list.forEach(block => {\r\n const element = document.getElementById(block.id);\r\n if (element) {\r\n block.offsetTopGetter = () => this.elementRect.top;\r\n block.top = element.offsetTop;\r\n block.height = element.clientHeight;\r\n block.style.position = `absolute`;\r\n block.style.top = `${block.top}px`;\r\n // block.style.height = `${block.height}px`;\r\n }\r\n });\r\n }\r\n // 延遲,等待頁面渲染\r\n return of(true).pipe(delay(initDelay));\r\n }),\r\n concatMap(v => {\r\n if (this.enableViewRender) {\r\n this.list.forEach(block => {\r\n block.showBlockType = LawArticleBlockShowType.Auto;\r\n });\r\n }\r\n // 延遲,等待頁面渲染\r\n return of(true).pipe(delay(initDelay));\r\n }),\r\n )\r\n .subscribe({\r\n next: v => { },\r\n complete: () => {\r\n setupSubsc.unsubscribe();\r\n }\r\n });\r\n }\r\n\r\n\r\n toggleHistory(item: LawArticleBlock): void {\r\n item.showRelate = false;\r\n\r\n item.showHistory = !item.showHistory;\r\n }\r\n showAllHistory(): void {\r\n this.list.forEach(v => v.showHistory = true);\r\n }\r\n hideAllHistory(): void {\r\n this.list.forEach(v => v.showHistory = false);\r\n }\r\n\r\n toggleRelate(item: LawArticleBlock): void {\r\n item.showHistory = false;\r\n\r\n item.showRelate = !item.showRelate;\r\n\r\n if (item.showRelate && !item.lawRelateRule && !item.waitLawRelateRequest) {\r\n this.requestRelateSystemList(item);\r\n }\r\n }\r\n requestRelateSystemList(item: LawArticleBlock): void {\r\n item.waitLawRelateRequest = true;\r\n this.lawRuleService.getRelateSystemListObserver(item.lawSystem.source.law_system_id2).subscribe(lawRelateSystems => {\r\n const relateGroupList = this.lawRuleService.groupLawRelateSystem(lawRelateSystems);\r\n item.lawRelateRule = relateGroupList;\r\n item.waitLawRelateRequest = false;\r\n });\r\n }\r\n\r\n\r\n // openRelateLawRulePopup(law_article_id: string): void {\r\n // this.relateLawRulePopupOpenerService.openPopup(law_article_id);\r\n // }\r\n lockLawArticle(lawArticleContent: LawArticleContent): void {\r\n this.lockedLawArticleContent = lawArticleContent;\r\n lawArticleContent.contentEditable = true;\r\n }\r\n unlockLawArticle(lawArticleContent: LawArticleContent): void {\r\n lawArticleContent.contentEditable = false;\r\n\r\n // this.lockedElement = null;\r\n }\r\n\r\n @HostListener('contextmenu', ['$event']) checkRightClick(ev: MouseEvent): void {\r\n if (this.lockedLawArticleContent) {\r\n ev.cancelBubble = true;\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n ev.stopImmediatePropagation();\r\n }\r\n }\r\n @HostListener('mouseup', ['$event']) checkMouseup(ev: MouseEvent): void {\r\n if (this.lockedLawArticleContent) {\r\n this.lockedLawArticleContent.contentEditable = false;\r\n this.lockedLawArticleContent = null;\r\n }\r\n }\r\n @HostListener('keydown', ['$event']) checkKeydown(ev: KeyboardEvent): void {\r\n if (this.lockedLawArticleContent) {\r\n console.log('lock keydown', ev);\r\n if (ev.ctrlKey && ev.code === 'KeyC') {\r\n document.execCommand('copy');\r\n }\r\n\r\n ev.cancelBubble = true;\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n ev.stopImmediatePropagation();\r\n\r\n if (ev.keyCode === 229) {\r\n const selection = window.getSelection();\r\n const range = selection.getRangeAt(0);\r\n window.getSelection().removeAllRanges();\r\n\r\n this.lockedElement.contentEditable = false;\r\n\r\n setTimeout(() => {\r\n this.lockedElement.contentEditable = true;\r\n selection.addRange(range);\r\n }, 0);\r\n }\r\n }\r\n }\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n checkCursorClickTarget(ev: any, targetElement: HTMLElement): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === targetElement;\r\n });\r\n }\r\n\r\n /** 圈選範圍 */\r\n getParentClassElement(className: string, node: Node): HTMLElement {\r\n if (node instanceof Text) {\r\n return this.getParentClassElement(className, node.parentElement);\r\n } else if (node instanceof HTMLElement) {\r\n const _element = node;\r\n if (_element.classList.contains(className)) {\r\n return _element;\r\n } else {\r\n return this.getParentClassElement(className, node.parentElement);\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n @HostListener('document:selectionchange', ['$event']) selectionChanged(ev: Event) {\r\n if (!this.lawArticleListService) { return; }\r\n this.lawArticleListService.selectedLawArticleContent = null;\r\n\r\n // this.isSelectionInContent = false;\r\n const selection = window.getSelection();\r\n if (selection.rangeCount === 0) { return; }\r\n if (selection.type !== 'Range') { return; }\r\n\r\n const range = selection.getRangeAt(0);\r\n const lawArticleEditableContentElement = this.getParentClassElement('law-article-editable-content', range.commonAncestorContainer);\r\n if (lawArticleEditableContentElement == null) { return; }\r\n\r\n const selectedLawArticleContent = this.lawArticleListService.lawArticleContentIdDict[lawArticleEditableContentElement.id];\r\n if (selectedLawArticleContent == null) { return; }\r\n this.lawArticleListService.selectedLawArticleContent = selectedLawArticleContent;\r\n\r\n this.lawArticleListService.textSelectionChange$.next(null);\r\n\r\n }\r\n\r\n\r\n /** 內文關鍵字高亮 */\r\n highlightFromFulltextSearchResultList(list: SearcherLawRuleFulltextItem[]): void {\r\n // const id2cDict = this.lawArticleListService.lawArticleId2ContentDict;\r\n // list.filter(v => v.sn != null)\r\n list.forEach(item => {\r\n if (item.type === SearcherLawRuleFulltextResultTypeId.Title) {\r\n const blockElement = document.getElementById(item.lawArticleBlock.id);\r\n if (blockElement) {\r\n const titleElement = blockElement.querySelector(':scope>.law-article-item>.law-article-wrapper>.law-article>.title-row');\r\n const range = TextStyle.convertTextIndexToRange(titleElement, item.textIndex, item.textIndex + item.keyword.length - 1);\r\n const emElement = document.createElement('em');\r\n emElement.appendChild(range.extractContents());\r\n range.insertNode(emElement);\r\n item.emElementList.push(emElement);\r\n }\r\n } else {\r\n const range = TextStyle.convertTextIndexToRange(item.lawArticleContent.element, item.textIndex, item.textIndex + item.keyword.length - 1);\r\n item.emElementList = [];\r\n const emElement = document.createElement('em');\r\n emElement.appendChild(range.extractContents());\r\n range.insertNode(emElement);\r\n item.emElementList.push(emElement);\r\n item.lawArticleContent.updateHtml();\r\n\r\n this.highlightedLawArticleContentList.push(item.lawArticleContent);\r\n }\r\n });\r\n }\r\n clearKeywordHighlight(): void {\r\n\r\n this.highlightedLawArticleContentList.forEach(c => {\r\n c.element.querySelectorAll('em').forEach(emElement => {\r\n const range = document.createRange();\r\n range.selectNodeContents(emElement);\r\n const contents = range.extractContents();\r\n range.selectNode(emElement);\r\n range.deleteContents();\r\n range.insertNode(contents);\r\n });\r\n });\r\n this.highlightedLawArticleContentList.forEach(c => {\r\n c.updateHtml();\r\n });\r\n\r\n this.highlightedLawArticleContentList = [];\r\n\r\n this.element.querySelectorAll('em').forEach(emElement => {\r\n const range = document.createRange();\r\n range.selectNodeContents(emElement);\r\n const contents = range.extractContents();\r\n range.selectNode(emElement);\r\n range.deleteContents();\r\n range.insertNode(contents);\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n /** 摘要範圍高亮 */\r\n setSummaryHighlightMask(lawArticleContent: LawArticleContent, startTextIndex: number, endTextIndex: number): void {\r\n if (startTextIndex < 0 || endTextIndex < 0) {\r\n return;\r\n }\r\n\r\n // set canvas\r\n const contentElement = document.getElementById(lawArticleContent.id);\r\n const range = TextStyle.convertTextIndexToRange(contentElement, startTextIndex, endTextIndex);\r\n\r\n const canvasElement = document.createElement('canvas');\r\n canvasElement.className = 'summary-highlight-mask';\r\n\r\n const padding: number = 2;\r\n const bRect = range.getBoundingClientRect();\r\n const wRect = contentElement.getBoundingClientRect();\r\n canvasElement.style.left = `${bRect.left - wRect.left}px`;\r\n canvasElement.style.top = `${bRect.top - wRect.top - padding}px`;\r\n canvasElement.width = bRect.width;\r\n canvasElement.height = bRect.height + (padding * 2);\r\n\r\n this.summaryHighlightCanvasWrapperElement = document.createElement('div');\r\n this.summaryHighlightCanvasWrapperElement.className = 'summary-highlight-mask-wrapper';\r\n\r\n this.summaryHighlightCanvasWrapperElement.appendChild(canvasElement);\r\n contentElement.appendChild(this.summaryHighlightCanvasWrapperElement);\r\n // console.log('set mask', range, this.summaryHighlightCanvasWrapperElement);\r\n\r\n // draw highlight\r\n const ctx = canvasElement.getContext('2d');\r\n ctx.fillStyle = 'rgba(255, 225, 104, 1.0)';\r\n const textIndexList = TextStyle.getTextIndexNodeListFromElement(contentElement);\r\n const selectedTextIndexList = textIndexList.slice(startTextIndex, endTextIndex + 1);\r\n const tRange = document.createRange();\r\n selectedTextIndexList.forEach(ti => {\r\n tRange.setStart(ti.node, ti.offset);\r\n tRange.setEnd(ti.node, ti.offset + 1);\r\n const rect = tRange.getBoundingClientRect();\r\n const left = Math.round(rect.left - bRect.left);\r\n const top = Math.round(rect.top - bRect.top);\r\n ctx.fillRect(left, top - padding, rect.width, rect.height + ((padding * 3)));\r\n });\r\n\r\n\r\n }\r\n removeSummaryHighlightMask(): void {\r\n if (this.summaryHighlightCanvasWrapperElement) {\r\n this.summaryHighlightCanvasWrapperElement.parentElement.removeChild(this.summaryHighlightCanvasWrapperElement);\r\n this.summaryHighlightCanvasWrapperElement = null;\r\n }\r\n }\r\n\r\n\r\n /** 捲動到指定range */\r\n scrollToRange(range: Range): void {\r\n ElementScroll.toRange(range, '30%');\r\n }\r\n\r\n\r\n\r\n /** 摘要關聯按鈕 */\r\n setLinkedSummaryIcon(): void {\r\n\r\n }\r\n\r\n selectBlockLinkedSummary(block: LawArticleBlock): void {\r\n this.lawArticleListService.selectBlockLinkedSummary(block);\r\n }\r\n selectLinkedSummaryList(list: Summary[]): void {\r\n this.lawArticleListService.selectBlockLinkedSummaryList(list);\r\n }\r\n\r\n\r\n @HostListener('window:resize', ['$event']) windowResized($ev: Event) {\r\n this.updateRect();\r\n }\r\n updateRect(): void {\r\n const element: HTMLElement = this.elementRef.nativeElement;\r\n this.elementRect = element.getBoundingClientRect();\r\n }\r\n updateAllBlockVirtualTopAndSize(): void {\r\n let addOffset = 0;\r\n this.list.forEach(block => {\r\n block.style.top = (block.top + addOffset) + 'px';\r\n if (block.selected) {\r\n addOffset = 41;\r\n }\r\n });\r\n }\r\n\r\n setupFilter(config: CheckLightFilterConfig): void {\r\n\r\n }\r\n makeListFilter(): void {\r\n const list = this.allList\r\n .filter(v => {\r\n return (v.checkIn && v.checkIn.status > 0);\r\n });\r\n this.setupList(list);\r\n }\r\n\r\n\r\n openRelateCase(block: LawArticleBlock): void {\r\n let lawRuleName = this.lawRule.source.law_rule_name;\r\n lawRuleName = lawRuleName.replace(/^中華民國/, '');\r\n\r\n let keyword1 = `${lawRuleName}第${block.lawSystem.source.law_system_number}條`;\r\n let keyword2 = `${lawRuleName}第${block.lawSystem.source.law_system_number_ch}條`;\r\n\r\n if (block.lawSystem.source.law_system_subnumber > 0) {\r\n keyword1 += `之${block.lawSystem.source.law_system_subnumber}`;\r\n keyword2 += `之${block.lawSystem.source.law_system_subnumber_ch}`;\r\n }\r\n keyword1 = encodeURI(keyword1);\r\n keyword2 = encodeURI(keyword2);\r\n\r\n const url: string = `/?p=complete_search&keyword1=${keyword1}&keyword2=${keyword2}`;\r\n window.open(url);\r\n // console.log(url);\r\n\r\n }\r\n\r\n // openLawRuleNote(lawRule: LawRule): void {\r\n // const url = '/note/law_rule/' + lawRule.source.law_rule_id;\r\n // window.open(url);\r\n // }\r\n\r\n // checkInNormal(block: LawArticleBlock): void {\r\n // if (this._checkIn == null) {\r\n // return;\r\n // }\r\n // const law_rule_id: string = block.lawSystem.lawRule.source.law_rule_id;\r\n // const number: number = block.lawSystem.source.law_system_number;\r\n // const subnumber: number = block.lawSystem.source.law_system_subnumber < 1\r\n // ? 0 : block.lawSystem.source.law_system_subnumber;\r\n // this._checkIn(law_rule_id, number, subnumber, 1);\r\n // }\r\n // updateBlcokCheckIn(list: CheckInLawArticle[]): void {\r\n // const checkInDict = {};\r\n // for (const item of list) {\r\n // const hash = item.system_number + '-' + item.system_subnumber;\r\n // checkInDict[hash] = item;\r\n // }\r\n // this.list.forEach(block => {\r\n // const number = block.lawSystem.source.law_system_number;\r\n // const subnumber = block.lawSystem.source.law_system_subnumber;\r\n // const hash = number + '-' + subnumber;\r\n\r\n // block.checkIn = checkInDict[hash];\r\n // });\r\n // }\r\n\r\n\r\n checkinArticleBlock(block: LawArticleBlock, status: number): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n block.checkInLawArticle(status);\r\n }\r\n}\r\n","
\r\n
\r\n
{{dateModify}}
\r\n
;{{datePublic}}
\r\n
\r\n
\r\n
\r\n
{{lawRule.source.law_rule_name}}
\r\n \r\n
\r\n
開啟法規
\r\n
\r\n
\r\n \r\n
\r\n
前言:
\r\n
中華民國國民大會受全體國民之付託,依據孫中山先生創立中華民國之遺教,為鞏固國權、保障民權、奠定社會安寧、增進人民福利,制定本憲法,頒行全國,永矢咸遵。
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 打卡\r\n {{(lawArticleBlock.checkInTotalCount||0).toLocaleString()}}\r\n \r\n
\r\n
\r\n
\r\n
每日只可打卡一次
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
綠燈
\r\n
\r\n
\r\n
\r\n
橘燈
\r\n
\r\n
\r\n
\r\n
紅燈
\r\n
\r\n
\r\n
\r\n
詳細資料
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 打卡\r\n {{(lawArticleBlock.checkInTotalCount||0).toLocaleString()}}\r\n \r\n
\r\n
\r\n
\r\n
每日只可打卡一次
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
今日已打卡
\r\n
\r\n
\r\n
\r\n
詳細資料
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
收合修法紀錄
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
收合關聯條文
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{relateLawRule.law_rule_name}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{relateLawArticle.numberText}}
\r\n
{{relateLawArticle.title}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
{{lawArticleItem.numberName}}
\r\n
{{lawArticleItem.title}}
\r\n
\r\n
\r\n
\r\n
\r\n {{lawArticleItem.getStatusText(lawArticleItem.lawLegislation.lawStatusModify)}}
\r\n
\r\n {{lawArticleItem.getStatusText(lawArticleItem.lawLegislation.lawStatusPublic,true,'公佈')}}
\r\n
\r\n {{lawArticleItem.getStatusText(lawArticleItem.lawLegislation.lawStatusForce,true,'施行')}}
\r\n
\r\n {{lawArticleItem.getStatusText(lawArticleItem.lawLegislation.lawStatusEffect,true,'生效')}}
\r\n
\r\n
\r\n
現行條文如上。
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
修法紀錄
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
關聯法條
\r\n
\r\n
\r\n
\r\n
實務見解
\r\n
\r\n
\r\n
\r\n
理由
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LawArticleListComponent } from './law-article-list.component';\r\nimport { PipeSafeInnerhtmlModule } from 'projects/lwlib/src/pipe-safe-innerhtml/pipe-safe-innerhtml.module';\r\nimport { LawArticleListService } from './law-article-list.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeSafeInnerhtmlModule\r\n ],\r\n declarations: [LawArticleListComponent],\r\n exports: [LawArticleListComponent],\r\n providers: [LawArticleListService],\r\n})\r\nexport class LawArticleListModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { LawArticleBlock } from './law-article-block';\r\nimport { LawArticleItem } from './law-article-item';\r\nimport { LawRule } from '../law-rule/law-rule';\r\nimport { LawArticleContent } from './law-article-content';\r\nimport { Summary } from '../summary-list/summary';\r\n\r\n@Injectable()\r\nexport class LawArticleListService {\r\n\r\n constructor() { }\r\n lawRule: LawRule;\r\n list: LawArticleBlock[] = [];\r\n // list$: Subject = new Subject();\r\n blockElementIdDict: { [key: string]: LawArticleBlock } = {};\r\n blockSidDict: { [key: number]: LawArticleBlock } = {};\r\n selectedLawArticleBlock: LawArticleBlock;\r\n selectedLawArticleBlock$: Subject = new Subject();\r\n /** 給View更新用 */\r\n _selectedLawArticleBlock$: Subject = new Subject();\r\n\r\n\r\n editableContentElement: HTMLElement;\r\n range: Range;\r\n lawArticleContentIdDict: { [key: string]: LawArticleContent } = {};\r\n lawArticleId2ContentDict: { [key: string]: LawArticleContent } = {};\r\n\r\n selectedLawArticleContent: LawArticleContent;\r\n\r\n selectedLinkedSummaryBlock: LawArticleBlock;\r\n selectedLinkedSummaryBlock$: Subject = new Subject();\r\n\r\n selectedLinkedSummaryList: Summary[];\r\n selectedLinkedSummaryList$: Subject = new Subject();\r\n selectedBlockLinkedSummaryIndex: number = 0;\r\n\r\n textSelectionChange$: Subject = new Subject();\r\n\r\n // updateList(list: LawArticleBlock[]): void {\r\n // this.list = list;\r\n // this.blockDict = {};\r\n // this.list.forEach(v => {\r\n // this.blockDict[v.id] = v;\r\n // });\r\n // }\r\n\r\n // cpl: { [key: string]: string } = {};\r\n\r\n updateListFromLawRule(lawRule: LawRule): LawArticleBlock[] {\r\n this.lawRule = lawRule;\r\n\r\n this.list = this.getLawArticleBlockFromLawRule(lawRule);\r\n\r\n this.blockElementIdDict = {};\r\n this.list.forEach(v => {\r\n this.blockElementIdDict[v.id] = v;\r\n this.blockSidDict[v.lawSystem.source.sid] = v;\r\n\r\n v.lawArticleItemList.forEach(item => {\r\n if (item.hasContent) {\r\n this.lawArticleContentIdDict[item.content.id] = item.content;\r\n this.lawArticleId2ContentDict[item.content.contentId2] = item.content;\r\n\r\n // this.cpl[item.content.contentId2] = item.content.element.textContent;\r\n }\r\n if (item.hasReason) {\r\n this.lawArticleContentIdDict[item.reason.id] = item.reason;\r\n this.lawArticleId2ContentDict[item.reason.contentId2] = item.reason;\r\n\r\n // this.cpl[item.reason.contentId2] = item.reason.element.textContent;\r\n }\r\n });\r\n });\r\n\r\n return this.list;\r\n // this.list$.next(this.list);\r\n // console.log(this.list);\r\n }\r\n getLawArticleBlockFromLawRule(lawRule: LawRule): LawArticleBlock[] {\r\n const list = lawRule.lawSystemArticleList.map(system => {\r\n const block = new LawArticleBlock();\r\n const lastLawArticle = lawRule.lawArticleDict[system.source.aid];\r\n block.lawSystem = system;\r\n\r\n block.lawArticleItemList = system.source.aids.map(aid => {\r\n const lawArticle = lawRule.lawArticleDict[aid];\r\n return LawArticleItem.create(\r\n lawRule.lawLegislationDict[lawArticle.source.lid],\r\n system,\r\n lawArticle,\r\n block\r\n );\r\n });\r\n // block.lawArticleItemList.sort((a, b) => b.lawArticle.source.lid - a.lawArticle.source.lid);\r\n if (system.source.law_system_number == 2) {\r\n console.log(block.lawArticleItemList);\r\n console.log(block.lawArticleItemList.map(v => v.lawArticle.source.aid));\r\n console.log('aid:' + system.source.aid);\r\n\r\n }\r\n block.lawArticleItem = block.lawArticleItemList.find(v => v.lawArticle.source.aid === system.source.aid);\r\n\r\n if (!block.lawArticleItem) {\r\n console.error('block lawArticleItem null, target aid:' + system.source.aid, block);\r\n }\r\n\r\n block.lawArticleListService = this;\r\n\r\n return block;\r\n });\r\n\r\n return list;\r\n }\r\n\r\n selectBlock(block: LawArticleBlock): void {\r\n // console.log('select block');\r\n this.setSelectedLawArticleBlock(block.lawSystem.source.sid);\r\n this.selectedLawArticleBlock$.next(block);\r\n this._selectedLawArticleBlock$.next(block);\r\n }\r\n setSelectedLawArticleBlock(sid: number): void {\r\n const block = this.blockSidDict[sid];\r\n if (this.selectedLawArticleBlock && this.selectedLawArticleBlock !== block) {\r\n this.selectedBlockLinkedSummaryIndex = 0;\r\n this.selectedLawArticleBlock.showHistory = false;\r\n this.selectedLawArticleBlock.showRelate = false;\r\n }\r\n this.selectedLawArticleBlock = block;\r\n this._selectedLawArticleBlock$.next(block);\r\n }\r\n\r\n updateBlockLinkedSummaryCount(list: Summary[]): void {\r\n this.list.forEach(v => {\r\n v.linkedSummaryList = [];\r\n v.linkedContentSummaryList = [];\r\n v.linkedArticleSummaryList = [];\r\n });\r\n list.filter(v => v.linkedLawArticleContent)\r\n .forEach(v => {\r\n v.linkedLawArticleContent.lawArticleItem.lawArticleBlock.linkedSummaryList.push(v);\r\n });\r\n this.list.forEach(v => {\r\n if (v.linkedSummaryList.length > 0) {\r\n v.linkedContentSummaryList = v.linkedSummaryList.filter(s => s.linkStartTextIndex > -1 && s.linkEndTextIndex > -1);\r\n v.linkedArticleSummaryList = v.linkedSummaryList.filter(s => s.linkStartTextIndex === -1 && s.linkEndTextIndex === -1);\r\n }\r\n });\r\n }\r\n selectBlockLinkedSummary(block: LawArticleBlock): void {\r\n if (this.selectedLinkedSummaryBlock !== block) {\r\n this.selectedBlockLinkedSummaryIndex = 0;\r\n this.selectedLinkedSummaryBlock = block;\r\n }\r\n this.selectedLinkedSummaryBlock$.next(block);\r\n\r\n this.selectedBlockLinkedSummaryIndex++;\r\n this.selectedBlockLinkedSummaryIndex = this.selectedBlockLinkedSummaryIndex % block.linkedSummaryList.length;\r\n }\r\n selectBlockLinkedSummaryList(list: Summary[]): void {\r\n if (this.selectedLinkedSummaryList !== list) {\r\n this.selectedBlockLinkedSummaryIndex = 0;\r\n this.selectedLinkedSummaryList = list;\r\n }\r\n this.selectedLinkedSummaryList$.next(list);\r\n\r\n this.selectedBlockLinkedSummaryIndex++;\r\n this.selectedBlockLinkedSummaryIndex = this.selectedBlockLinkedSummaryIndex % list.length;\r\n }\r\n\r\n\r\n // setForeColor(color: string): void {\r\n // this.exeFontTool(() => {\r\n // document.execCommand('foreColor', false, color);\r\n // });\r\n // }\r\n // setBackColor(color: string): void {\r\n // this.exeFontTool(() => {\r\n // document.execCommand('backColor', false, color);\r\n // });\r\n // }\r\n // setBold(): void {\r\n // this.exeFontTool(() => {\r\n // document.execCommand('bold', false);\r\n // });\r\n // }\r\n // setUnderline(): void {\r\n // this.exeFontTool(() => {\r\n // document.execCommand('underline', false);\r\n // });\r\n // }\r\n // setFontFamily(fontFamily: string): void {\r\n // this.exeFontTool(() => {\r\n // document.execCommand('fontName', false, fontFamily);\r\n // });\r\n // }\r\n // private exeFontTool(action: () => void): void {\r\n // if (this.range) {\r\n // (this.editableContentElement).contentEditable = true;\r\n // action();\r\n // (this.editableContentElement).contentEditable = false;\r\n // }\r\n // // if (this.fontToolLock) { return; }\r\n\r\n // // if (this.range) {\r\n // // this.fontToolLock = true;\r\n // // (this.editableContentElement).contentEditable = true;\r\n // // action();\r\n // // (this.editableContentElement).contentEditable = false;\r\n // // const selection = window.getSelection();\r\n // // const range = selection.getRangeAt(0).cloneRange();\r\n // // selection.removeAllRanges();\r\n // // setTimeout(() => {\r\n // // selection.addRange(range);\r\n // // this.range = range;\r\n // // this.fontToolLock = false;\r\n // // }, 200);\r\n // // }\r\n // }\r\n}\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { LawLegislation } from '../law-rule/law-legislation';\r\nimport { LawStatus } from '../law-rule/law-status';\r\nimport { LawRuleEvolutionTimeEditorPopupOpenerService } from '../law-rule-evolution-time-editor-popup/law-rule-evolution-time-editor-popup-opener.service';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\n\r\n@Component({\r\n selector: 'app-law-rule-evolution-popup',\r\n templateUrl: './law-rule-evolution-popup.component.html',\r\n styleUrls: ['./law-rule-evolution-popup.component.scss']\r\n})\r\nexport class LawRuleEvolutionPopupComponent extends BasePopup implements OnInit {\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n private lawRuleEvolutionTimeEditorPopupOpenerService: LawRuleEvolutionTimeEditorPopupOpenerService,\r\n public service: AppService,\r\n ) {\r\n super();\r\n }\r\n\r\n contentBuildDict: { [key: string]: { type: string, content: string }[] } = {};\r\n\r\n list: LawLegislation[] = [];\r\n visableDate: boolean;\r\n contentBuilder: (text: string) => { type: string, content: string }[];\r\n onArticleNumberClick: (articleNumber: string) => void;\r\n\r\n ngOnInit() {\r\n }\r\n initPopup(\r\n list: LawLegislation[],\r\n visableDate: boolean,\r\n contentBuilder: (text: string) => { type: string, content: string }[],\r\n onArticleNumberClick: (articleNumber: string) => void\r\n ): void {\r\n this.contentBuildDict = {};\r\n this.list = list;\r\n console.log(list);\r\n\r\n this.visableDate = visableDate;\r\n\r\n this.contentBuilder = contentBuilder;\r\n this.onArticleNumberClick = onArticleNumberClick;\r\n\r\n if (this.contentBuilder != null\r\n && this.onArticleNumberClick != null) {\r\n for (const item of list) {\r\n const buildList = this.contentBuilder(item.content_2nl);\r\n this.contentBuildDict[item.source.law_legislation_id2] = buildList;\r\n }\r\n }\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n getStatusDateText(status: LawStatus): string {\r\n if (status == null) {\r\n return '';\r\n } else {\r\n return status.getDateText();\r\n }\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) closeMenu(ev: MouseEvent) {\r\n if (this.checkCursorClickClassName(ev, 'law-rule-evolution-popup')\r\n && this.checkCursorClickClassName(ev, 'mask-full-screen')) {\r\n this.closePopup();\r\n }\r\n }\r\n\r\n openTimeEditorPopup(lawLegislation: LawLegislation, focusStatus: LawStatus): void {\r\n this.lawRuleEvolutionTimeEditorPopupOpenerService.openPopup(lawLegislation, focusStatus);\r\n }\r\n\r\n ConvertLegislationContentToSafeText(rawtext: string): string {\r\n const temp = document.createElement('div');\r\n temp.innerHTML = rawtext;\r\n const resultText = temp.textContent;\r\n return resultText;\r\n }\r\n clickArticleNumber(text: string): void {\r\n this.onArticleNumberClick(text);\r\n this.closePopup();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n
立法沿革
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
日期
\r\n
\r\n
內容
\r\n
\r\n
公佈日
\r\n
\r\n
施行日
\r\n
\r\n
生效日
\r\n
{{getStatusDateText(lawLegislation.lawStatusModify)}}{{lawLegislation.content_2nl}}\r\n \r\n \r\n {{content.content}}\r\n {{content.content}}\r\n \r\n \r\n
\r\n
\r\n
{{getStatusDateText(lawLegislation.lawStatusPublic)}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{getStatusDateText(lawLegislation.lawStatusForce)}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{getStatusDateText(lawLegislation.lawStatusEffect)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LawRuleEvolutionPopupComponent } from './law-rule-evolution-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { LawRuleEvolutionTimeEditorPopupModule } from '../law-rule-evolution-time-editor-popup/law-rule-evolution-time-editor-popup.module';\r\nimport { PipeSafeInnerhtmlModule } from '../pipe-safe-innerhtml/pipe-safe-innerhtml.module';\r\n\r\n@NgModule({\r\n declarations: [LawRuleEvolutionPopupComponent],\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n LawRuleEvolutionTimeEditorPopupModule,\r\n PipeSafeInnerhtmlModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [LawRuleEvolutionPopupComponent]\r\n})\r\nexport class LawRuleEvolutionPopupModule { }\r\n","export class LawLegislationTime {\r\n law_legislation_id2: string;\r\n public_year: number;\r\n public_month: number;\r\n public_day: number;\r\n force_year: number;\r\n force_month: number;\r\n force_day: number;\r\n effect_year: number;\r\n effect_month: number;\r\n effect_day: number;\r\n}\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { LawRuleEvolutionTimeEditorPopupComponent } from './law-rule-evolution-time-editor-popup.component';\r\nimport { LawLegislation } from '../law-rule/law-legislation';\r\nimport { LawStatus } from '../law-rule/law-status';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LawRuleEvolutionTimeEditorPopupOpenerService {\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(LawRuleEvolutionTimeEditorPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(lawLegislation: LawLegislation, focusStatus: LawStatus): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(lawLegislation, focusStatus);\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, HostListener, ViewChild, ElementRef } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { LawLegislation } from '../law-rule/law-legislation';\r\nimport { LawStatus } from '../law-rule/law-status';\r\nimport { LawRuleService } from '../law-rule/law-rule.service';\r\nimport { LawLegislationTime } from './law-legislation-time';\r\nimport { LawStatusSource } from '../law-rule/law-status-source';\r\nimport { ExtString } from 'projects/lwlib/src/ext-string';\r\nimport { ExtNumber } from 'projects/lwlib/src/ext-number';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\n\r\n@Component({\r\n selector: 'app-law-rule-evolution-time-editor-popup',\r\n templateUrl: './law-rule-evolution-time-editor-popup.component.html',\r\n styleUrls: ['./law-rule-evolution-time-editor-popup.component.scss']\r\n})\r\nexport class LawRuleEvolutionTimeEditorPopupComponent extends BasePopup implements OnInit {\r\n\r\n @ViewChild('inputPublicYearElementRef', { static: true }) inputPublicYearElementRef: ElementRef;\r\n @ViewChild('inputPublicMonthElementRef', { static: true }) inputPublicMonthElementRef: ElementRef;\r\n @ViewChild('inputPublicDayElementRef', { static: true }) inputPublicDayElementRef: ElementRef;\r\n @ViewChild('inputForceYearElementRef', { static: true }) inputForceYearElementRef: ElementRef;\r\n @ViewChild('inputForceMonthElementRef', { static: true }) inputForceMonthElementRef: ElementRef;\r\n @ViewChild('inputForceDayElementRef', { static: true }) inputForceDayElementRef: ElementRef;\r\n @ViewChild('inputEffectYearElementRef', { static: true }) inputEffectYearElementRef: ElementRef;\r\n @ViewChild('inputEffectMonthElementRef', { static: true }) inputEffectMonthElementRef: ElementRef;\r\n @ViewChild('inputEffectDayElementRef', { static: true }) inputEffectDayElementRef: ElementRef;\r\n\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n private lawRuleService: LawRuleService,\r\n public service: AppService,\r\n ) {\r\n super();\r\n }\r\n\r\n lawLegislation: LawLegislation;\r\n\r\n inputPublicYear: string;\r\n inputPublicMonth: string;\r\n inputPublicDay: string;\r\n inputForceYear: string;\r\n inputForceMonth: string;\r\n inputForceDay: string;\r\n inputEffectYear: string;\r\n inputEffectMonth: string;\r\n inputEffectDay: string;\r\n\r\n disableSaveButton: boolean = true;\r\n\r\n saving: boolean = false;\r\n\r\n ngOnInit() { }\r\n\r\n initPopup(lawLegislation: LawLegislation, focusStatus: LawStatus): void {\r\n this.lawLegislation = lawLegislation;\r\n\r\n if (this.lawLegislation.lawStatusPublic) {\r\n this.inputPublicYear = this.lawLegislation.lawStatusPublic.source.law_status_year === 0 ? '' : this.lawLegislation.lawStatusPublic.source.law_status_year.toString();\r\n this.inputPublicMonth = this.lawLegislation.lawStatusPublic.source.law_status_month === 0 ? '' : this.lawLegislation.lawStatusPublic.source.law_status_month.toString();\r\n this.inputPublicDay = this.lawLegislation.lawStatusPublic.source.law_status_day === 0 ? '' : this.lawLegislation.lawStatusPublic.source.law_status_day.toString();\r\n }\r\n if (this.lawLegislation.lawStatusForce) {\r\n this.inputForceYear = this.lawLegislation.lawStatusForce.source.law_status_year === 0 ? '' : this.lawLegislation.lawStatusForce.source.law_status_year.toString();\r\n this.inputForceMonth = this.lawLegislation.lawStatusForce.source.law_status_month === 0 ? '' : this.lawLegislation.lawStatusForce.source.law_status_month.toString();\r\n this.inputForceDay = this.lawLegislation.lawStatusForce.source.law_status_day === 0 ? '' : this.lawLegislation.lawStatusForce.source.law_status_day.toString();\r\n }\r\n if (this.lawLegislation.lawStatusEffect) {\r\n this.inputEffectYear = this.lawLegislation.lawStatusEffect.source.law_status_year === 0 ? '' : this.lawLegislation.lawStatusEffect.source.law_status_year.toString();\r\n this.inputEffectMonth = this.lawLegislation.lawStatusEffect.source.law_status_month === 0 ? '' : this.lawLegislation.lawStatusEffect.source.law_status_month.toString();\r\n this.inputEffectDay = this.lawLegislation.lawStatusEffect.source.law_status_day === 0 ? '' : this.lawLegislation.lawStatusEffect.source.law_status_day.toString();\r\n }\r\n\r\n\r\n setTimeout(() => {\r\n if (focusStatus === this.lawLegislation.lawStatusPublic) {\r\n this.inputPublicYearElementRef.nativeElement.focus();\r\n } else if (focusStatus === this.lawLegislation.lawStatusForce) {\r\n this.inputForceYearElementRef.nativeElement.focus();\r\n } else if (focusStatus === this.lawLegislation.lawStatusEffect) {\r\n this.inputEffectYearElementRef.nativeElement.focus();\r\n }\r\n });\r\n\r\n\r\n\r\n this.checkEnableSaveButton();\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n getStatusDateText(status: LawStatus): string {\r\n if (status == null) {\r\n return '';\r\n } else {\r\n return status.getDateText();\r\n }\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n\r\n checkDateValid(year: number, month: number, day: number): boolean {\r\n // const year: number = parseInt(_year, 10);\r\n // const month: number = parseInt(_month, 10);\r\n // const day: number = parseInt(_day, 10);\r\n const date = new Date(`${year + 1911}-${month}-${day}`);\r\n const isValidDate = (Boolean(+date) && date.getDate() === day);\r\n return isValidDate;\r\n }\r\n checkStatusTime(year: any, month: any, day: any): boolean {\r\n if (\r\n (year == null || year.toString().length === 0)\r\n && (month == null || month.toString().length === 0)\r\n && (day == null || day.toString().length === 0)\r\n ) {\r\n return true;\r\n }\r\n\r\n if (year != null\r\n || month != null\r\n || day != null) {\r\n if (\r\n ExtNumber.isNumberAndBiggerThen(year, 0)\r\n && ExtNumber.isNumberAndBiggerThen(month, 0)\r\n && ExtNumber.isNumberAndBiggerThen(day, 0)\r\n ) {\r\n const nyear = ExtNumber.getNumber(year);\r\n const nmonth = ExtNumber.getNumber(month);\r\n const nday = ExtNumber.getNumber(day);\r\n if (this.checkDateValid(nyear, nmonth, nday)) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n checkEnableSaveButton(): void {\r\n this.disableSaveButton = false;\r\n\r\n if (!this.checkStatusTime(this.inputPublicYear, this.inputPublicMonth, this.inputPublicDay)) {\r\n this.disableSaveButton = true;\r\n return;\r\n }\r\n if (!this.checkStatusTime(this.inputForceYear, this.inputForceMonth, this.inputForceDay)) {\r\n this.disableSaveButton = true;\r\n return;\r\n }\r\n if (!this.checkStatusTime(this.inputEffectYear, this.inputEffectMonth, this.inputEffectDay)) {\r\n this.disableSaveButton = true;\r\n return;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n save(): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n this.closePopup();\r\n return;\r\n }\r\n \r\n const save: LawLegislationTime = new LawLegislationTime();\r\n save.law_legislation_id2 = this.lawLegislation.source.law_legislation_id2;\r\n save.public_year = this.inputPublicYear != null && this.inputPublicYear.length > 0 ? parseInt(this.inputPublicYear, 10) : 0;\r\n save.public_month = this.inputPublicMonth != null && this.inputPublicMonth.length > 0 ? parseInt(this.inputPublicMonth, 10) : 0;\r\n save.public_day = this.inputPublicDay != null && this.inputPublicDay.length > 0 ? parseInt(this.inputPublicDay, 10) : 0;\r\n save.force_year = this.inputForceYear != null && this.inputForceYear.length > 0 ? parseInt(this.inputForceYear, 10) : 0;\r\n save.force_month = this.inputForceMonth != null && this.inputForceMonth.length > 0 ? parseInt(this.inputForceMonth, 10) : 0;\r\n save.force_day = this.inputForceDay != null && this.inputForceDay.length > 0 ? parseInt(this.inputForceDay, 10) : 0;\r\n save.effect_year = this.inputEffectYear != null && this.inputEffectYear.length > 0 ? parseInt(this.inputEffectYear, 10) : 0;\r\n save.effect_month = this.inputEffectMonth != null && this.inputEffectMonth.length > 0 ? parseInt(this.inputEffectMonth, 10) : 0;\r\n save.effect_day = this.inputEffectDay != null && this.inputEffectDay.length > 0 ? parseInt(this.inputEffectDay, 10) : 0;\r\n\r\n this.saving = true;\r\n this.lawRuleService.updateLawLegislationTimeObserver(save).subscribe(r => {\r\n this.saving = false;\r\n\r\n this.lawLegislation.lawStatusPublic = new LawStatus();\r\n this.lawLegislation.lawStatusPublic.source = new LawStatusSource();\r\n this.lawLegislation.lawStatusForce = new LawStatus();\r\n this.lawLegislation.lawStatusForce.source = new LawStatusSource();\r\n this.lawLegislation.lawStatusEffect = new LawStatus();\r\n this.lawLegislation.lawStatusEffect.source = new LawStatusSource();\r\n\r\n this.lawLegislation.lawStatusPublic.source.law_status_year = save.public_year;\r\n this.lawLegislation.lawStatusPublic.source.law_status_month = save.public_month;\r\n this.lawLegislation.lawStatusPublic.source.law_status_day = save.public_day;\r\n this.lawLegislation.lawStatusForce.source.law_status_year = save.force_year;\r\n this.lawLegislation.lawStatusForce.source.law_status_month = save.force_month;\r\n this.lawLegislation.lawStatusForce.source.law_status_day = save.force_day;\r\n this.lawLegislation.lawStatusEffect.source.law_status_year = save.effect_year;\r\n this.lawLegislation.lawStatusEffect.source.law_status_month = save.effect_month;\r\n this.lawLegislation.lawStatusEffect.source.law_status_day = save.effect_day;\r\n\r\n // const sourcePublic = this.lawLegislation.lawStatusPublic.source;\r\n // const sourceForce = this.lawLegislation.lawStatusForce.source;\r\n // const sourceEffect = this.lawLegislation.lawStatusEffect.source;\r\n // if (sourcePublic.law_status_year === 0 && sourcePublic.law_status_month === 0 && sourcePublic.law_status_day === 0) {\r\n // this.lawLegislation.lawStatusPublic = null;\r\n // }\r\n // if (sourceForce.law_status_year === 0 && sourceForce.law_status_month === 0 && sourceForce.law_status_day === 0) {\r\n // this.lawLegislation.lawStatusForce = null;\r\n // }\r\n // if (sourceEffect.law_status_year === 0 && sourceEffect.law_status_month === 0 && sourceEffect.law_status_day === 0) {\r\n // this.lawLegislation.lawStatusEffect = null;\r\n // }\r\n\r\n\r\n this.popupManagerService.closeLast();\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n
沿革日期
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
公佈日
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
施行日
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
生效日
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
儲存
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LawRuleEvolutionTimeEditorPopupComponent } from './law-rule-evolution-time-editor-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [LawRuleEvolutionTimeEditorPopupComponent],\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [LawRuleEvolutionTimeEditorPopupComponent]\r\n})\r\nexport class LawRuleEvolutionTimeEditorPopupModule { }\r\n","export class LawRuleFastBagItem {\r\n law_rule_id: string;\r\n law_rule_name: string;\r\n sn: number;\r\n add_time: number;\r\n}\r\n","import { Component, OnInit, ElementRef, HostListener, OnDestroy } from '@angular/core';\r\nimport { LawRuleFastBagItem } from './law-rule-fast-bag-item';\r\nimport { LawRuleFastBag } from './law-rule-fast-bag';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { EditSnPopupOpenerService } from '../edit-sn-popup/edit-sn-popup-opener.service';\r\nimport { LawRuleService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/law-rule/law-rule.service';\r\nimport { LoadingIconService } from '../loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { forkJoin } from 'rxjs';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\n\r\n@Component({\r\n selector: 'app-law-rule-fast-bag-popup',\r\n templateUrl: './law-rule-fast-bag-popup.component.html',\r\n styleUrls: ['./law-rule-fast-bag-popup.component.scss'],\r\n})\r\nexport class LawRuleFastBagPopupComponent extends BasePopup implements OnInit, OnDestroy {\r\n clickShowPopup: boolean = false;\r\n\r\n fastBag: LawRuleFastBag;\r\n list: LawRuleFastBagItem[] = [];\r\n\r\n\r\n openedMenuElement: Element;\r\n\r\n onRequestImportFavLawRule: () => void;\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n private editSnOpenerService: EditSnPopupOpenerService,\r\n private lawRuleService: LawRuleService,\r\n private loadingIconService: LoadingIconService,\r\n private service: AppService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.fastBag = this.lawRuleService.fastBag;\r\n\r\n this.subscriptions.list = this.lawRuleService.fastBag$.subscribe(fastBag => {\r\n this.fastBag = fastBag;\r\n this.updateList(fastBag.list);\r\n });\r\n }\r\n ngOnDestroy() {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n initPopup(): void {\r\n this.updateList(this.lawRuleService.fastBag.list);\r\n }\r\n updateList(list: LawRuleFastBagItem[]): void {\r\n this.list = this.getEmptyList();\r\n list.forEach((item, i) => {\r\n this.list[i] = item;\r\n });\r\n }\r\n\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n\r\n selectMenuItem(itemElement: Element): void {\r\n console.log('select menu');\r\n\r\n if (this.openedMenuElement === itemElement) {\r\n this.openedMenuElement = null;\r\n } else {\r\n this.openedMenuElement = itemElement;\r\n }\r\n }\r\n checkCursorClickTarget(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a =>\r\n a instanceof HTMLElement\r\n && a === this.openedMenuElement\r\n || (a.classList && (\r\n a.classList.contains('edit-menu')\r\n || a.classList.contains('edit-sn-popup')\r\n ))\r\n );\r\n }\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) closeMenu(ev: MouseEvent) {\r\n // alert(ev.composedPath());\r\n // if (this.openedMenuElement == null) {\r\n // return;\r\n // }\r\n // console.log(ev.target);\r\n if (this.openedMenuElement && !this.checkCursorClickTarget(ev)) {\r\n this.openedMenuElement = null;\r\n console.log('close menu');\r\n }\r\n if (this.checkCursorClickClassName(ev, 'law-rule-fast-bag-popup')\r\n && this.checkCursorClickClassName(ev, 'mask-full-screen')) {\r\n this.closePopup();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n getEmptyList(): LawRuleFastBagItem[] {\r\n let emptyList = new Array(30).fill(null);\r\n emptyList = emptyList.map((v, i) => {\r\n const emptyItem = new LawRuleFastBagItem();\r\n emptyItem.sn = (i + 1);\r\n return emptyItem;\r\n });\r\n\r\n return emptyList;\r\n }\r\n\r\n\r\n moveItemSn(fromSn: number, toSn: number) {\r\n const list = this.fastBag.list;\r\n const sourceIndex = list.findIndex(v => v.sn === fromSn);\r\n const sourceItem = list.splice(sourceIndex, 1)[0];\r\n let targetIndex = list.findIndex(v => v.sn === toSn);\r\n if (targetIndex === -1) {\r\n targetIndex = sourceIndex;\r\n } else if (targetIndex >= sourceIndex) {\r\n targetIndex += 1;\r\n }\r\n\r\n list.splice(targetIndex, 0, sourceItem);\r\n\r\n LawRuleFastBag.reindexListSn(list);\r\n }\r\n openEidtSnPopup(item: LawRuleFastBagItem): void {\r\n const filterList = this.list.filter(v => v.law_rule_name);\r\n const lastListItem = filterList[filterList.length - 1];\r\n const compRef = this.editSnOpenerService.openPopup(item.sn, lastListItem.sn);\r\n\r\n compRef.instance.submit.subscribe(r => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.OrderSn);\r\n this.openedMenuElement = null;\r\n\r\n this.moveItemSn(item.sn, r);\r\n this.updateList(this.fastBag.list);\r\n\r\n\r\n const orderRequestData = LawRuleFastBag.getOrderRequestData(this.fastBag.list);\r\n this.lawRuleService.orderFastBagObserver(orderRequestData).subscribe({\r\n complete: () => {\r\n // 關彈窗\r\n this.popupManagerService.closeComponent(compRef);\r\n\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.OrderSn);\r\n }\r\n });\r\n });\r\n }\r\n\r\n cancelCollect(item: LawRuleFastBagItem): void {\r\n if (confirm('確定取消收藏?')) {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n console.log('取消收藏');\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.EditSn);\r\n this.lawRuleService.fastBagLawRuleCollectObserver(item.law_rule_id, false).subscribe({\r\n complete: () => {\r\n // 更新法規筆記清單\r\n if (this.lawRuleService.noteList) {\r\n const note = this.lawRuleService.noteList.list.find(n => n.law_rule_id === item.law_rule_id);\r\n if (note) {\r\n note.fast_bag = false;\r\n }\r\n }\r\n\r\n // 更新快捷包\r\n this.lawRuleService.pullFastBagObserver().subscribe({\r\n complete: () => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.EditSn);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n checkCursorClickMenuButton(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some(a =>\r\n a instanceof HTMLElement\r\n && (a.classList && a.classList.contains('edit-button'))\r\n );\r\n }\r\n openLawRuleNote(ev: MouseEvent, item: LawRuleFastBagItem): void {\r\n if (!this.checkCursorClickMenuButton(ev)\r\n && item.law_rule_id) {\r\n console.log('開啟筆記');\r\n const url: string = this.service.BaseUrlWeb + '/note/law_rule/' + item.law_rule_id\r\n // + '?load_save=1&force_desktop=1';\r\n + '?load_save=1';\r\n\r\n window.open(url);\r\n }\r\n }\r\n\r\n\r\n requestImportFavLawRule(): void {\r\n if (this.onRequestImportFavLawRule) {\r\n this.onRequestImportFavLawRule();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
最愛法規(快捷包)
\r\n \r\n
\r\n 0\">\r\n
\r\n
\r\n
\r\n
序號
\r\n
法規名稱
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
法規名稱
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
序號
\r\n
法規名稱
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
尚未加入最愛法規
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
{{item.sn}}
\r\n
\r\n
\r\n
{{item.law_rule_name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
編輯序號
\r\n
\r\n
\r\n
\r\n
取消收藏
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LawRuleFastBagPopupComponent } from './law-rule-fast-bag-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { EditSnPopupModule } from '../edit-sn-popup/edit-sn-popup.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n EditSnPopupModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [\r\n LawRuleFastBagPopupComponent\r\n ],\r\n exports: [\r\n LawRuleFastBagPopupComponent\r\n ]\r\n})\r\nexport class LawRuleFastBagPopupModule { }\r\n","import { LawRuleFastBagItem } from './law-rule-fast-bag-item';\r\nimport { LawRuleFastBagOrderRequestData } from './law-rule-fast-bag-order-request-data';\r\n\r\nexport class LawRuleFastBag {\r\n editTime: Date | string;\r\n count: number;\r\n list: LawRuleFastBagItem[];\r\n\r\n static reindexListSn(list: LawRuleFastBagItem[]): void {\r\n list.forEach((v, i) => {\r\n v.sn = i + 1;\r\n });\r\n }\r\n static getOrderRequestData(list: LawRuleFastBagItem[]): LawRuleFastBagOrderRequestData[] {\r\n return list.map(v => {\r\n return {\r\n law_rule_id: v.law_rule_id,\r\n sn: v.sn\r\n } as LawRuleFastBagOrderRequestData;\r\n });\r\n }\r\n}\r\n","import { LawArticleBuildLineData } from \"./law-rule\";\r\n\r\nexport class LawArticleSource {\r\n lid: number;\r\n\r\n aid: number;\r\n number: number;\r\n subnumber: number;\r\n date_text: string;\r\n\r\n is_last: boolean;\r\n\r\n law_article_id2: string;\r\n law_article_content: string;\r\n law_article_reason: string;\r\n\r\n law_article_content_custom: LawArticleBuildLineData[];\r\n law_article_reason_custom: LawArticleBuildLineData[];\r\n is_content_custom: boolean;\r\n is_reason_custom: boolean;\r\n}","import { LawArticleSource } from './law-article-source';\r\nimport { LawSystem } from './law-system';\r\nimport { LawLegislation } from './law-legislation';\r\nimport { LawRule } from './law-rule';\r\n\r\nexport class LawArticle {\r\n source: LawArticleSource;\r\n\r\n lawRule: LawRule;\r\n lawLegislation: LawLegislation;\r\n lawSystem: LawSystem;\r\n\r\n year: number;\r\n month: number;\r\n day: number;\r\n status: string;\r\n}\r\n","import { LawLegislationSource } from './law-legislation-source';\r\nimport { LawRule } from './law-rule';\r\nimport { LawSystem } from './law-system';\r\nimport { LawStatus } from './law-status';\r\n\r\nexport class LawLegislation {\r\n source: LawLegislationSource;\r\n\r\n lawRule: LawRule;\r\n lawSystemList: LawSystem[] = [];\r\n lawSystemTree: LawSystem[] = [];\r\n\r\n lawStatusModify: LawStatus;\r\n lawStatusPublic: LawStatus;\r\n lawStatusForce: LawStatus;\r\n lawStatusEffect: LawStatus;\r\n\r\n content_2nl: string;\r\n}\r\n","import { LawRelateSystemSource } from './law-relate-system-source';\r\n\r\nexport class LawRelateSystem {\r\n source: LawRelateSystemSource;\r\n\r\n numberText: string = '';\r\n title: string = '';\r\n contentHtml: string = '';\r\n}\r\n","export enum LawRuleStatusId {\r\n NONE = 0, // 空\r\n Establish = 1, // 制定\r\n Implement = 2, // 施行\r\n Announce = 3, // 公布\r\n Correction = 4, // 修正\r\n FulltextCorrection = 5, // 全文修正\r\n Expire = 6, // 期滿廢止\r\n Repeal = 7, // 廢止\r\n Stop = 8, // 停止適用\r\n Effect = 9, // 生效\r\n Delete = 10, // 刪除\r\n Additional = 11, // 增訂\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LawRule } from './law-rule';\r\nimport { Observable } from 'rxjs';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { tap, map } from 'rxjs/operators';\r\nimport { LawRuleSource } from './law-rule-source';\r\nimport { LawLegislation } from './law-legislation';\r\nimport { LawStatusSource } from './law-status-source';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { LawSystemSource } from './law-system-source';\r\nimport { LawSystem } from './law-system';\r\nimport { LawSystemLevelId } from './law-system-level-id.enum';\r\nimport { LawArticleSource } from './law-article-source';\r\nimport { LawArticle } from './law-article';\r\nimport { LawRelateSystemSource } from './law-relate-system-source';\r\nimport { LawRelateSystem } from './law-relate-system';\r\nimport { LawArticleContentSpliter } from '../law-article-content-spliter/law-article-content-spliter';\r\nimport { LawStatus } from './law-status';\r\nimport { LawLegislationTime } from '../law-rule-evolution-time-editor-popup/law-legislation-time';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LawRuleService {\r\n // lawRuleDict: { [key: string]: LawRule } = {};\r\n\r\n constructor(\r\n private service: AppService,\r\n ) { }\r\n\r\n // private _getCaseObserver(law_rule_merge_id: string): Observable {\r\n // return this.service.get('law_rule/case_note?id=' + law_rule_merge_id);\r\n // }\r\n // getCaseObserver(law_rule_merge_id: string): Observable {\r\n // return this._getCaseObserver(law_rule_merge_id)\r\n // .pipe(\r\n // map((lawRuleSource: LawRuleSource) => {\r\n // return this.convertLawRuleSourceToLawRule(lawRuleSource);\r\n // })\r\n // );\r\n // }\r\n // convertLawRuleSourceToLawRule(lawRuleSource: LawRuleSource): LawRule {\r\n // // 法規\r\n // const lawRule: LawRule = new LawRule();\r\n // lawRule.source = lawRuleSource;\r\n\r\n // // 設定沿革\r\n // lawRuleSource.law_legislation_list = lawRuleSource.law_legislation_list.map(v => {\r\n // v.law_status_modify = Serializable.extendObjectFromResponseObject(new LawStatusSource(), v.law_status_modify);\r\n // v.law_status_public = v.law_status_public ? Serializable.extendObjectFromResponseObject(new LawStatusSource(), v.law_status_public) : null;\r\n // v.law_status_force = v.law_status_force ? Serializable.extendObjectFromResponseObject(new LawStatusSource(), v.law_status_force) : null;\r\n // v.law_status_effect = v.law_status_effect ? Serializable.extendObjectFromResponseObject(new LawStatusSource(), v.law_status_effect) : null;\r\n // return v;\r\n // });\r\n // lawRule.lawLegislationList = lawRuleSource.law_legislation_list.map(legislationSource => {\r\n // const legislation = new LawLegislation();\r\n // legislation.source = legislationSource;\r\n // legislation.lawRule = lawRule;\r\n\r\n // legislation.lawStatusModify = legislation.source.law_status_modify ? LawStatus.create(legislation.source.law_status_modify) : null;\r\n // legislation.lawStatusPublic = legislation.source.law_status_public ? LawStatus.create(legislation.source.law_status_public) : null;\r\n // legislation.lawStatusForce = legislation.source.law_status_force ? LawStatus.create(legislation.source.law_status_force) : null;\r\n // legislation.lawStatusEffect = legislation.source.law_status_effect ? LawStatus.create(legislation.source.law_status_effect) : null;\r\n\r\n // legislation.content_2nl = legislationSource.law_legislation_content.replace(/\\n/g, '\\n\\n');\r\n\r\n // return legislation;\r\n // });\r\n\r\n\r\n // // 設定體系\r\n // lawRuleSource.law_system_list = lawRuleSource.law_system_list.map(v => Serializable.extendObjectFromResponseObject(new LawSystemSource(), v));\r\n // const lastLawLegislation = lawRule.lawLegislationList[lawRule.lawLegislationList.length - 1];\r\n // lawRule.lastLawLegislation = lastLawLegislation;\r\n // lawRule.lawSystemList = lawRuleSource.law_system_list.map(systemSource => {\r\n // const system = new LawSystem();\r\n // system.source = systemSource;\r\n // return system;\r\n // });\r\n // // 體系上下層\r\n // const lawSystemDict = {};\r\n // lawRule.lawSystemList.forEach(system => { lawSystemDict[system.source.sid] = system; });\r\n // lawRule.lawSystemDict = lawSystemDict;\r\n // lawRule.lawSystemList.forEach(system => {\r\n // system.lawRule = lawRule;\r\n // system.lawLegislation = lastLawLegislation;\r\n // if (system.source.parent_sid != null) {\r\n // system.parent = lawSystemDict[system.source.parent_sid];\r\n // system.parent.childs.push(system);\r\n // }\r\n // system.isArticle = (system.source.law_system_level_id === LawSystemLevelId.條);\r\n\r\n // system.numberText = system.getNumberTextFull();\r\n // system.numberTitle = system.getNumberTitle();\r\n // system.titleText = system.source.law_system_title;\r\n // if (system.source.law_system_title) {\r\n // system.titleText = `(${system.source.law_system_title})`;\r\n // }\r\n // });\r\n\r\n // // 設定法條\r\n // lawRuleSource.law_article_list = lawRuleSource.law_article_list.map(v => Serializable.extendObjectFromResponseObject(new LawArticleSource(), v));\r\n // lawRule.lawArticleList = lawRuleSource.law_article_list.map(articleSource => {\r\n // const lawArticle = new LawArticle();\r\n // lawArticle.source = articleSource;\r\n // return lawArticle;\r\n // });\r\n // const lawArticleDict = {};\r\n // lawRule.lawArticleList.forEach((article: LawArticle) => { lawArticleDict[article.source.aid] = article; });\r\n // lawRule.lawArticleDict = lawArticleDict;\r\n // const lawLegislationDict = {};\r\n // lawRule.lawLegislationList.forEach(legislation => { lawLegislationDict[legislation.source.lid] = legislation; });\r\n // lawRule.lawLegislationDict = lawLegislationDict;\r\n // const lawSystemArticleDict = {};\r\n // lawRule.lawSystemArticleList = lawRule.lawSystemList.filter(v => v.isArticle);\r\n // lawRule.lawSystemArticleList.forEach(system => {\r\n // system.source.aids.forEach(aid => {\r\n // lawSystemArticleDict[aid] = system;\r\n // });\r\n // });\r\n // lawRule.lawSystemArticleDict = lawSystemArticleDict;\r\n // lawRule.lawArticleList.forEach(article => {\r\n // article.lawRule = lawRule;\r\n // article.lawLegislation = lawLegislationDict[article.source.lid];\r\n // article.lawSystem = lawSystemArticleDict[article.source.aid];\r\n // article.lawSystem.lawArticle = article;\r\n // article.lawSystem.childLawArticles.push(article);\r\n // });\r\n\r\n\r\n // /** 其他設定 */\r\n // lawRule.lawSystemTree = lawRule.lawSystemList.filter(v => v.parent == null);\r\n\r\n // return lawRule;\r\n // }\r\n\r\n private _getRelateSystemListObserver(law_system_id2: string): Observable {\r\n return this.service.get('law_rule/relate_system?id=' + law_system_id2);\r\n }\r\n getRelateSystemListObserver(law_system_id2: string): Observable {\r\n return this._getRelateSystemListObserver(law_system_id2)\r\n .pipe(\r\n map(source => {\r\n return source\r\n // 過濾掉S錯誤選擇的體系\r\n .filter(v => v.law_article_content)\r\n .map(lawRelateSource => {\r\n const lawRelateSystem = new LawRelateSystem();\r\n lawRelateSystem.source = lawRelateSource;\r\n lawRelateSystem.numberText = `第${lawRelateSource.law_system_number}條`;\r\n if (lawRelateSource.law_system_subnumber) {\r\n lawRelateSystem.numberText += `之${lawRelateSource.law_system_subnumber}`;\r\n }\r\n if (lawRelateSource.law_system_title) {\r\n lawRelateSystem.title = `(${lawRelateSource.law_system_title})`;\r\n }\r\n\r\n // const contentText = lawRelateSource.law_article_content ? lawRelateSource.law_article_content : '';\r\n const contentText = lawRelateSource.law_article_content;\r\n const contentElement = LawArticleContentSpliter.convertLawArticleTextToDom(contentText);\r\n const contentChildrenList = Array.from(contentElement.children);\r\n if (contentChildrenList.filter(e => e.tagName === 'LI').length === 1) {\r\n contentChildrenList.find(e => e.tagName === 'LI')\r\n .setAttribute('data-no-type', '');\r\n }\r\n lawRelateSystem.contentHtml = contentElement.outerHTML;\r\n\r\n return lawRelateSystem;\r\n });\r\n })\r\n );\r\n }\r\n groupLawRelateSystem(list: LawRelateSystem[]): { law_rule_name: string, list: LawRelateSystem[] }[] {\r\n const data: { [key: string]: LawRelateSystem[] } = {};\r\n list.forEach(lawRelateSystem => {\r\n if (data[lawRelateSystem.source.law_rule_name] == null) {\r\n data[lawRelateSystem.source.law_rule_name] = [];\r\n }\r\n data[lawRelateSystem.source.law_rule_name].push(lawRelateSystem);\r\n });\r\n Object.keys(data).forEach(key => {\r\n data[key].sort((a, b) => {\r\n const numberResult = (a.source.law_system_number - b.source.law_system_number);\r\n if (numberResult !== 0) {\r\n return numberResult;\r\n } else {\r\n return a.source.law_system_subnumber - b.source.law_system_subnumber;\r\n }\r\n });\r\n });\r\n\r\n const result = Object.keys(data).map(key => {\r\n return {\r\n law_rule_name: key,\r\n list: data[key]\r\n };\r\n });\r\n\r\n return result;\r\n }\r\n\r\n\r\n updateLawLegislationTimeObserver(save: LawLegislationTime): Observable {\r\n return this.service.post('law_rule/save_law_legislation_time', save);\r\n }\r\n}\r\n","import { LawRuleSource } from './law-rule-source';\r\nimport { LawLegislation } from './law-legislation';\r\nimport { LawSystem } from './law-system';\r\nimport { LawArticle } from './law-article';\r\nimport { SummarySave } from '../summary-list/summary-save';\r\nimport { LawSystemLevelId } from './law-system-level-id.enum';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { LawStatus } from './law-status';\r\nimport { LawStatusSource } from './law-status-source';\r\nimport { LawSystemSource } from './law-system-source';\r\nimport { LawArticleSource } from './law-article-source';\r\n\r\n/**\r\n * 從LawRuleSource(原LawRuleCase)轉換過來,C專用的法規Class\r\n */\r\nexport class LawRule {\r\n source: LawRuleSource;\r\n\r\n // get law_rule_id(): string { return this.source.law_rule_id; }\r\n // get law_rule_name(): string { return this.source.law_rule_name; }\r\n // get modify_date(): number[] { return this.source.modify_date; }\r\n // get modify_status(): string { return this.source.modify_status; }\r\n // get public_date(): number[] { return this.source.public_date; }\r\n // get public_status(): string { return this.source.public_status; }\r\n\r\n // lawLegislationList: LawLegislation[] = [];\r\n lawLegislationList: LawLegislation[] = [];\r\n // lawLegislationList: LawLegislation[] = [];\r\n lawSystemList: LawSystem[] = [];\r\n lawArticleList: LawArticle[] = [];\r\n\r\n lawSystemTree: LawSystem[] = [];\r\n lawSystemArticleList: LawSystem[] = [];\r\n\r\n /** LawLegislationSource.lid : LawLegislation */\r\n lawLegislationDict: { [key: number]: LawLegislation } = {};\r\n /** LawArticleSource.sid : LawSystem */\r\n lawSystemDict: { [key: number]: LawSystem } = {};\r\n /** LawArticleSource.aid | LawArticleSource.aid : LawSystem */\r\n lawSystemArticleDict: { [key: number]: LawSystem } = {};\r\n /** LawArticleSource.aid | LawArticleSource.aid : LawArticle */\r\n lawArticleDict: { [key: number]: LawArticle } = {};\r\n\r\n lastLawLegislation: LawLegislation;\r\n\r\n static convertLawRuleSourceToLawRule(lawRuleSource: LawRuleSource): LawRule {\r\n // 法規\r\n const lawRule: LawRule = new LawRule();\r\n lawRule.source = lawRuleSource;\r\n\r\n const isMergeLawRule: boolean = this.MergeLawRuleId[lawRuleSource.law_rule_id] != null;\r\n\r\n // 設定沿革\r\n lawRuleSource.law_legislation_list = lawRuleSource.law_legislation_list.map(v => {\r\n if (isMergeLawRule) {\r\n v.law_legislation_id2 = lawRuleSource.law_rule_id + v.law_legislation_id2.substring(36);\r\n }\r\n\r\n v.law_status_modify = Serializable.extendObjectFromResponseObject(new LawStatusSource(), v.law_status_modify);\r\n v.law_status_public = v.law_status_public ? Serializable.extendObjectFromResponseObject(new LawStatusSource(), v.law_status_public) : null;\r\n v.law_status_force = v.law_status_force ? Serializable.extendObjectFromResponseObject(new LawStatusSource(), v.law_status_force) : null;\r\n v.law_status_effect = v.law_status_effect ? Serializable.extendObjectFromResponseObject(new LawStatusSource(), v.law_status_effect) : null;\r\n return v;\r\n });\r\n // 轉換沿革\r\n lawRule.lawLegislationList = lawRuleSource.law_legislation_list.map(legislationSource => {\r\n const legislation = new LawLegislation();\r\n legislation.source = legislationSource;\r\n legislation.lawRule = lawRule;\r\n\r\n legislation.lawStatusModify = legislation.source.law_status_modify ? LawStatus.create(legislation.source.law_status_modify) : null;\r\n legislation.lawStatusPublic = legislation.source.law_status_public ? LawStatus.create(legislation.source.law_status_public) : null;\r\n legislation.lawStatusForce = legislation.source.law_status_force ? LawStatus.create(legislation.source.law_status_force) : null;\r\n legislation.lawStatusEffect = legislation.source.law_status_effect ? LawStatus.create(legislation.source.law_status_effect) : null;\r\n\r\n if (lawRuleSource.law_source === 0) {\r\n // 立法院沿革才做換行\r\n legislation.content_2nl = legislationSource.law_legislation_content.replace(/\\n/g, '\\n\\n');\r\n\r\n } else {\r\n // 全國法規照原文內容\r\n legislation.content_2nl = legislationSource.law_legislation_content;\r\n\r\n }\r\n\r\n return legislation;\r\n });\r\n\r\n // 設定體系\r\n lawRuleSource.law_system_list = lawRuleSource.law_system_list.map(v => Serializable.extendObjectFromResponseObject(new LawSystemSource(), v));\r\n const lastLawLegislation = lawRule.lawLegislationList[0];\r\n lawRule.lastLawLegislation = lastLawLegislation;\r\n lawRule.lawSystemList = lawRuleSource.law_system_list.map(systemSource => {\r\n const system = new LawSystem();\r\n system.source = systemSource;\r\n return system;\r\n });\r\n // 體系上下層\r\n const lawSystemDict = {};\r\n lawRule.lawSystemList.forEach(system => { lawSystemDict[system.source.sid] = system; });\r\n lawRule.lawSystemDict = lawSystemDict;\r\n lawRule.lawSystemList.forEach(system => {\r\n system.lawRule = lawRule;\r\n system.lawLegislation = lastLawLegislation;\r\n if (system.source.parent_sid != null) {\r\n system.parent = lawSystemDict[system.source.parent_sid];\r\n if (system.parent) {\r\n system.parent.childs.push(system);\r\n }\r\n }\r\n system.isArticle = (system.source.law_system_level_id === LawSystemLevelId.條);\r\n\r\n system.numberText = system.getNumberTextFull();\r\n system.numberTitle = system.getNumberTitle();\r\n system.titleText = system.source.law_system_title;\r\n if (system.source.law_system_title) {\r\n let titleText = system.source.law_system_title;\r\n if (titleText === '(刪除)') {\r\n titleText = '刪除';\r\n }\r\n system.titleText = `(${titleText})`;\r\n }\r\n });\r\n\r\n // 設定法條\r\n lawRuleSource.law_article_list = lawRuleSource.law_article_list.map(v => Serializable.extendObjectFromResponseObject(new LawArticleSource(), v));\r\n lawRule.lawArticleList = lawRuleSource.law_article_list.map(articleSource => {\r\n const lawArticle = new LawArticle();\r\n lawArticle.source = articleSource;\r\n return lawArticle;\r\n });\r\n\r\n // 設定法條dict aid:article\r\n const lawArticleDict = {};\r\n lawRule.lawArticleList.forEach((article: LawArticle) => { lawArticleDict[article.source.aid] = article; });\r\n lawRule.lawArticleDict = lawArticleDict;\r\n // 設定沿革dict lid:legislation\r\n const lawLegislationDict = {};\r\n lawRule.lawLegislationList.forEach(legislation => { lawLegislationDict[legislation.source.lid] = legislation; });\r\n lawRule.lawLegislationDict = lawLegislationDict;\r\n // 設定法條層體系dict aid:system\r\n const lawSystemArticleDict = {};\r\n lawRule.lawSystemArticleList = lawRule.lawSystemList.filter(v => v.isArticle);\r\n lawRule.lawSystemArticleList.forEach(system => {\r\n system.source.aids.forEach(aid => {\r\n lawSystemArticleDict[aid] = system;\r\n });\r\n });\r\n lawRule.lawSystemArticleDict = lawSystemArticleDict;\r\n\r\n // 設定法條\r\n lawRule.lawArticleList.forEach(article => {\r\n article.lawRule = lawRule;\r\n article.lawLegislation = lawLegislationDict[article.source.lid];\r\n article.lawSystem = lawSystemArticleDict[article.source.aid];\r\n if (article.lawSystem) {\r\n article.lawSystem.lawArticle = article;\r\n article.lawSystem.childLawArticles.push(article);\r\n }\r\n });\r\n\r\n\r\n /** 其他設定 */\r\n lawRule.lawSystemTree = lawRule.lawSystemList.filter(v => v.parent == null);\r\n\r\n return lawRule;\r\n }\r\n}\r\nexport namespace LawRule {\r\n export enum MergeLawRuleId {\r\n '3b6fcb81-14da-4407-b8b2-fb90d058daea'\r\n }\r\n}\r\nexport class LawArticleBuildLineData {\r\n action: string;\r\n text: string;\r\n ml_count: number;\r\n ti_count: number;\r\n paragraph_number: number;\r\n pre: number;\r\n}","import { LawRuleStatusId } from './law-rule-status-id.enum';\r\n\r\nexport class LawStatusSource {\r\n law_status_year: number;\r\n law_status_month: number;\r\n law_status_day: number;\r\n law_status_name_id: LawRuleStatusId;\r\n}\r\n","import { LawRuleStatusId } from './law-rule-status-id.enum';\r\nimport { LawStatusSource } from './law-status-source';\r\n\r\nexport class LawStatus {\r\n static idName: { [key in keyof typeof LawRuleStatusId]: string } = {\r\n NONE: '',\r\n Establish: '制定',\r\n Implement: '施行',\r\n Announce: '公布',\r\n Correction: '修正',\r\n FulltextCorrection: '全文修正',\r\n Expire: '期滿廢止',\r\n Repeal: '廢止',\r\n Stop: '停止適用',\r\n Effect: '生效',\r\n Delete: '刪除',\r\n Additional: '增訂',\r\n };\r\n\r\n source: LawStatusSource = new LawStatusSource();\r\n\r\n static create(source: LawStatusSource): LawStatus {\r\n const lawStatus: LawStatus = new LawStatus();\r\n lawStatus.source = source;\r\n return lawStatus;\r\n }\r\n\r\n getDateText(): string {\r\n if (this.source\r\n && this.source.law_status_year > 0\r\n && this.source.law_status_month > 0\r\n && this.source.law_status_day > 0) {\r\n return this.source.law_status_year\r\n + '/' + this.source.law_status_month.toString().padStart(2, '0')\r\n + '/' + this.source.law_status_day.toString().padStart(2, '0');\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","export enum LawSystemLevelId {\r\n 條 = 4,\r\n 款 = 5,\r\n 目 = 6,\r\n 章 = 7,\r\n 節 = 8,\r\n 篇 = 9,\r\n 編 = 10\r\n}\r\n","import { LawSystemLevelId } from './law-system-level-id.enum';\r\n\r\nexport class LawSystemSource {\r\n sid: number | null;\r\n parent_sid: number | null;\r\n child_sid: number[];\r\n lid: number | null;\r\n aid: number | null;\r\n aids: number[];\r\n law_system_id2: string;\r\n law_system_level_id: LawSystemLevelId;\r\n law_system_number: number;\r\n law_system_subnumber: number;\r\n law_system_number_ch: number;\r\n law_system_subnumber_ch: number;\r\n law_system_title: string;\r\n has_relate: boolean;\r\n}\r\n","import { LawSystemSource } from './law-system-source';\r\nimport { LawLegislation } from './law-legislation';\r\nimport { LawRule } from './law-rule';\r\nimport { LawArticle } from './law-article';\r\nimport { Subject } from 'rxjs';\r\nimport { LawSystemLevelId } from './law-system-level-id.enum';\r\n\r\nexport class LawSystem {\r\n source: LawSystemSource;\r\n\r\n lawRule: LawRule;\r\n lawLegislation: LawLegislation;\r\n\r\n parent: LawSystem;\r\n childs: LawSystem[] = [];\r\n\r\n isArticle: boolean = false;\r\n lawArticle: LawArticle;\r\n childLawArticles: LawArticle[] = [];\r\n\r\n numberTitle: string;\r\n numberText: string;\r\n titleText: string;\r\n\r\n getNumberTitle(): string {\r\n let text = this.getNumberTextFull();\r\n if (this.source.law_system_title) {\r\n text += ` (${this.source.law_system_title})`;\r\n }\r\n return text;\r\n }\r\n getNumberTextFull(): string {\r\n let text = '第' + this.source.law_system_number;\r\n text += LawSystemLevelId[this.source.law_system_level_id];\r\n if (this.source.law_system_subnumber > 0) {\r\n text += '之' + this.source.law_system_subnumber;\r\n }\r\n\r\n return text;\r\n }\r\n}\r\n","export namespace LwExt {\r\n export function replaceCharAt(text: string, index: number, newchar: string): string {\r\n return text.substring(0, index)\r\n + newchar\r\n + text.substring(index + 1);\r\n }\r\n export enum ChineseNumberType {\r\n Base = 0,\r\n Level = 1,\r\n Ten = 2,\r\n }\r\n export class ChineseNumber {\r\n static chineseNumberBaseDict = {\r\n \"壹\": 1, \"一\": 1, \"1\": 1, \"1\": 1,\r\n \"貳\": 2, \"二\": 2, \"2\": 2, \"2\": 2, \"贰\": 2, \"兩\": 2,\r\n \"參\": 3, \"三\": 3, \"3\": 3, \"3\": 3, \"叁\": 3, \"𦍑\": 3,\r\n \"肆\": 4, \"四\": 4, \"4\": 4, \"4\": 4,\r\n \"伍\": 5, \"五\": 5, \"5\": 5, \"5\": 5,\r\n \"陸\": 6, \"六\": 6, \"6\": 6, \"6\": 6, \"陆\": 6,\r\n \"柒\": 7, \"七\": 7, \"7\": 7, \"7\": 7,\r\n \"捌\": 8, \"八\": 8, \"8\": 8, \"8\": 8,\r\n \"玖\": 9, \"九\": 9, \"9\": 9, \"9\": 9,\r\n \"零\": 0, \"○\": 0, \"0\": 0, \"0\": 0\r\n }\r\n static chineseNumberLevelDict = {\r\n \"十\": 2, \"拾\": 2,\r\n \"百\": 3, \"佰\": 3,\r\n \"千\": 4, \"仟\": 3,\r\n \"萬\": 5,\r\n \"億\": 9,\r\n }\r\n static chineseNumberTenLevelDict = {\r\n \"廿\": 20, \"卅\": 30, \"卌\": 40\r\n }\r\n static allChineseNumber = Object.keys(ChineseNumber.chineseNumberBaseDict).join('')\r\n + Object.keys(ChineseNumber.chineseNumberLevelDict).join('')\r\n + Object.keys(ChineseNumber.chineseNumberTenLevelDict).join('');\r\n static regexAllNumber = /^\\d+$/g;\r\n static ChineseToArabic(numberString: string): number {\r\n // 檢查是否已經是數字\r\n if (ChineseNumber.regexAllNumber.test(numberString)) {\r\n return Number(numberString);\r\n }\r\n\r\n\r\n let stringBuilder: string = '';\r\n\r\n let chrIndex = 0;\r\n let prevType: ChineseNumberType = ChineseNumberType.Base;\r\n const length = numberString.length;\r\n for (let i = numberString.length - 1; i >= 0; i--) {\r\n const chNumChr = numberString[i];\r\n const text = chNumChr;\r\n if (ChineseNumber.chineseNumberBaseDict[text] != null) {\r\n const number = ChineseNumber.chineseNumberBaseDict[text];\r\n if (stringBuilder.length == 0) {\r\n stringBuilder += '' + number;\r\n chrIndex = 0;\r\n } else {\r\n if (prevType == ChineseNumberType.Level) {\r\n if (number == 0) {\r\n stringBuilder = number + '' + stringBuilder;\r\n } else {\r\n stringBuilder = replaceCharAt(stringBuilder, chrIndex, number + '');\r\n // stringBuilder = stringBuilder.substring(0, chrIndex)\r\n // + (number + '')\r\n // + stringBuilder.substring(chrIndex + 1);\r\n }\r\n } else if (prevType == ChineseNumberType.Base) {\r\n stringBuilder = number + '' + stringBuilder;\r\n }\r\n }\r\n prevType = ChineseNumberType.Base;\r\n }\r\n else if (ChineseNumber.chineseNumberLevelDict[text] != null) {\r\n const level = ChineseNumber.chineseNumberLevelDict[text];\r\n if (stringBuilder.length < level) {\r\n const zeros = '1'.padEnd(level - stringBuilder.length, '0');\r\n stringBuilder = zeros + stringBuilder;\r\n } else {\r\n if (prevType == ChineseNumberType.Level) {\r\n const unitNumberChar = stringBuilder[chrIndex];\r\n stringBuilder = replaceCharAt(stringBuilder, chrIndex, '0');\r\n const zeros = unitNumberChar.padEnd(level - 1, '0');\r\n stringBuilder = zeros + stringBuilder;\r\n } else if (prevType == ChineseNumberType.Base) {\r\n\r\n }\r\n }\r\n prevType = ChineseNumberType.Level;\r\n }\r\n else if (ChineseNumber.chineseNumberTenLevelDict[text] != null) {\r\n const level = ChineseNumber.chineseNumberLevelDict['十'];\r\n if (stringBuilder.length < level) {\r\n const zeros = ChineseNumber.chineseNumberTenLevelDict[text]\r\n .toString()[0]\r\n .padEnd(level - stringBuilder.length, '0');\r\n stringBuilder = zeros + stringBuilder;\r\n } else { }\r\n\r\n prevType = ChineseNumberType.Base;\r\n }\r\n }\r\n\r\n const result = Number(stringBuilder);\r\n return result;\r\n }\r\n }\r\n export function escapeRegExp(string) {\r\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\r\n }\r\n export function iosScreenHighFixer() {\r\n // 對應ios畫面高度問題\r\n const htmlElement: HTMLHtmlElement = document.querySelector('html');\r\n htmlElement.addEventListener('touchmove', (e) => {\r\n if (e.cancelable) {\r\n e.preventDefault();\r\n }\r\n htmlElement.scrollTop = 0;\r\n }, false);\r\n setInterval(() => {\r\n if (document.body.scrollHeight != window.innerHeight) {\r\n document.body.style.height = window.innerHeight + 'px';\r\n }\r\n }, 100);\r\n }\r\n}\r\nexport class LawRuleDataRange {\r\n start: number[];\r\n end: number[];\r\n}\r\nexport class LawRuleData {\r\n name: string;\r\n numbers: number[][];\r\n ranges: LawRuleDataRange[];\r\n}\r\nexport function getClickEventPath(ev: MouseEvent): EventTarget[] {\r\n if (ev.composedPath) {\r\n return ev.composedPath();\r\n } else {\r\n return (ev as any).path;\r\n }\r\n}\r\nexport function checkClickPathTarget(path: EventTarget[], element: Element): boolean {\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n}\r\nexport function checkClickPathClassName(path: EventTarget[],className: string): boolean {\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n}\r\nexport function checkClickTarget(ev: MouseEvent, element: Element): boolean {\r\n const path = getClickEventPath(ev);\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n}\r\nexport function checkClickClassName(ev: MouseEvent, className: string): boolean {\r\n const path = getClickEventPath(ev);\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n}\r\nexport function checkIsMobileDevice(): boolean {\r\n const userAgent = navigator.userAgent || navigator.vendor;\r\n return /android|avantgo|blackberry|iemobile|ipad|iphone|ipod|opera mini|mobile|palm|palmos|phone|symbian|webos|windows ce|windows phone|xda|xiino/i.test(userAgent);\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-line-id-setting-popup',\r\n templateUrl: './line-id-setting-popup.component.html',\r\n styleUrls: ['./line-id-setting-popup.component.scss']\r\n})\r\nexport class LineIdSettingPopupComponent implements OnInit {\r\n\r\n confirm$: Subject = new Subject();\r\n text: string = '';\r\n\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n close(): void {\r\n this.matDialogRef.close();\r\n }\r\n confirm(): void {\r\n this.confirm$.next(this.text);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
LINE 設定
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LineIdSettingPopupComponent } from './line-id-setting-popup.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [LineIdSettingPopupComponent],\r\n imports: [\r\n CommonModule,\r\n // MatDialogModule,\r\n FormsModule,\r\n ],\r\n exports: [LineIdSettingPopupComponent]\r\n})\r\nexport class LineIdSettingPopupModule { }\r\n","import { Component, OnInit, AfterContentInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-area-loading-icon',\r\n templateUrl: './area-loading-icon.component.html',\r\n styleUrls: ['./area-loading-icon.component.scss']\r\n})\r\nexport class AreaLoadingIconComponent implements OnInit, AfterContentInit {\r\n\r\n onAfterContentInit$: Subject = new Subject();\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n ngAfterContentInit(): void {\r\n this.onAfterContentInit$.next(null);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
Legal Works
\r\n
","
\r\n \r\n
Legal Works
\r\n
{{text}}
\r\n
","import { Component, OnInit, ViewChild, AfterContentInit } from '@angular/core';\r\nimport { MaskFullScreenComponent } from '../mask-full-screen/mask-full-screen.component';\r\nimport { LoadingIconService } from './loading-icon.service';\r\n\r\n@Component({\r\n selector: 'app-loading-icon',\r\n templateUrl: './loading-icon.component.html',\r\n styleUrls: ['./loading-icon.component.scss']\r\n})\r\nexport class LoadingIconComponent implements OnInit, AfterContentInit {\r\n\r\n // @ViewChild(MaskFullScreenComponent) maskFullScreenComponent: MaskFullScreenComponent;\r\n // [style]=\"{'background-color':'#eee'}\" \r\n showLoadingIcon: boolean = false;\r\n text: string = '';\r\n\r\n constructor(\r\n private loadingIconService: LoadingIconService\r\n ) {\r\n this.showLoadingIcon = loadingIconService.showFullScreenLoadingIcon;\r\n loadingIconService.showFullScreenLoadingIcon$.subscribe(r => {\r\n this.showLoadingIcon = r;\r\n });\r\n loadingIconService.msgText$.subscribe(r => {\r\n this.text = r;\r\n });\r\n }\r\n\r\n ngOnInit() { }\r\n ngAfterContentInit(): void {\r\n // this.maskFullScreenComponent.style.background = '#eee';\r\n }\r\n // openFrom: string;\r\n\r\n // openFullScreen(text: string = ''): void {\r\n // this.showLoadingIcon = true;\r\n // this.openFrom = text;\r\n // console.log('open loading, ', text);\r\n\r\n // }\r\n // close(): void {\r\n // this.showLoadingIcon = false;\r\n\r\n // console.log('close loading, ', this.openFrom);\r\n\r\n // }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoadingIconComponent } from './loading-icon.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { AreaLoadingIconComponent } from './area-loading-icon/area-loading-icon.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n ],\r\n declarations: [LoadingIconComponent, AreaLoadingIconComponent],\r\n exports: [LoadingIconComponent]\r\n})\r\nexport class LoadingIconModule { }\r\n","import { Injectable, ComponentRef, ComponentFactoryResolver, Injector, ApplicationRef } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from '../../../../node_modules/rxjs';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { InitService } from '../init/init.service';\r\nimport { AreaLoadingIconComponent } from './area-loading-icon/area-loading-icon.component';\r\n// import { LoadingIconComponent } from './loading-icon.component';\r\n// import { CaseTagPopupComponent } from '../case-tag-popup/case-tag-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingIconService {\r\n\r\n showFullScreenLoadingIcon: boolean = false;\r\n showAreaLoadingIcon: boolean = false;\r\n\r\n showFullScreenLoadingIcon$: Subject = new Subject();\r\n showAreaLoadingIcon$: Subject = new Subject();\r\n msgText$: Subject = new Subject();\r\n\r\n openedFromName: ActionName;\r\n // fullscreenLoadingIconComponentRef: ComponentRef;\r\n areaOpenedFromName: ActionName;\r\n areaLoadingIconComponentRef: ComponentRef;\r\n\r\n\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private initService: InitService,\r\n ) {\r\n this.showFullScreenLoadingIcon$.subscribe(r => {\r\n this.showFullScreenLoadingIcon = r;\r\n });\r\n this.showAreaLoadingIcon$.subscribe(r => {\r\n this.showAreaLoadingIcon = r;\r\n });\r\n }\r\n\r\n /** 建立讀取動畫組件 */\r\n buildLoadingIconComponentRef(): ComponentRef {\r\n const componentRef = this.componentFactoryResolver\r\n .resolveComponentFactory(AreaLoadingIconComponent)\r\n .create(this.injector);\r\n\r\n componentRef.location.nativeElement.setAttribute('loading-icon', '');\r\n\r\n\r\n return componentRef;\r\n }\r\n\r\n\r\n\r\n /**開啟區域讀取動畫 */\r\n openAreaLoadingIcon(name: ActionName, element: Element): void {\r\n if (!this.showFullScreenLoadingIcon\r\n && !this.showAreaLoadingIcon) {\r\n console.log(' %copen area loading icon from%c ' + ActionName[name], 'background:#090;color:#fff', 'color:#090');\r\n const compRef = this.buildLoadingIconComponentRef();\r\n\r\n element.appendChild(compRef.location.nativeElement);\r\n\r\n this.appRef.attachView(compRef.hostView);\r\n\r\n compRef.instance.onAfterContentInit$.subscribe(() => {\r\n\r\n });\r\n\r\n this.areaOpenedFromName = name;\r\n this.areaLoadingIconComponentRef = compRef;\r\n this.showAreaLoadingIcon$.next(true);\r\n }\r\n }\r\n /**關閉區域讀取動畫 */\r\n closeAreaLoadingIcon(name: ActionName): void {\r\n if (this.showAreaLoadingIcon\r\n && this.areaOpenedFromName === name) {\r\n console.log(' %cclose area loading icon%c ' + ActionName[name], 'background:#f00;color:#fff', 'color:#f00');\r\n\r\n this.appRef.detachView(this.areaLoadingIconComponentRef.hostView);\r\n this.areaLoadingIconComponentRef.destroy();\r\n\r\n this.areaOpenedFromName = null;\r\n this.areaLoadingIconComponentRef = null;\r\n this.showAreaLoadingIcon$.next(false);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // 減少寫開啟讀取動畫的代碼,但考慮到要等待組件初始化結束的不只有讀取動畫,就不使用這方法\r\n // openFullScreenLoadingIcon(name: ActionName, waitTargets: ActionName[][]): void {\r\n // if (this.showFullScreenLoadingIcon) {\r\n // return;\r\n // }\r\n // this.openedFromName = name;\r\n // this.showFullScreenLoadingIcon$.next(true);\r\n\r\n // this.initService.register({\r\n // target: waitTargets,\r\n // onComplete: () => {\r\n // this.closeFullScreenLoadingIcon(this.openedFromName);\r\n // }\r\n // });\r\n\r\n // console.log(' %copen loading icon from%c ' + ActionName[name], 'background:#090;color:#fff', 'color:#090');\r\n // }\r\n\r\n /** 開啟全屏讀取動畫 */\r\n openFullScreenLoadingIcon(name: ActionName): void {\r\n if (this.showFullScreenLoadingIcon) {\r\n return;\r\n }\r\n\r\n this.openedFromName = name;\r\n this.showFullScreenLoadingIcon$.next(true);\r\n\r\n console.log(' %copen loading icon from%c ' + ActionName[name], 'background:#090;color:#fff', 'color:#090');\r\n }\r\n /** 關閉全屏讀取動畫 */\r\n closeFullScreenLoadingIcon(name: ActionName): void {\r\n if (name !== this.openedFromName\r\n || name == null) {\r\n return;\r\n }\r\n\r\n this.showFullScreenLoadingIcon$.next(false);\r\n this.openedFromName = null;\r\n console.log(' %cclose loading icon%c ' + ActionName[name], 'background:#f00;color:#fff', 'color:#f00');\r\n }\r\n\r\n updateMsgText(text: string): void {\r\n this.msgText$.next(text);\r\n }\r\n}\r\n","/** 頁面ID, */\r\nexport enum LogPageId {\r\n Login = 0,\r\n Logout = 1,\r\n RegisterSubmit = 2,\r\n PersonalStorageJudgment = 3,\r\n PersonalStorageJudicialInterpret = 4,\r\n PersonalStorageLawRule = 5,\r\n SearchConditionJudgment = 6,\r\n SearchConditionJudicialInterpret = 7,\r\n SearchConditionLawRule = 8,\r\n SearchResultJudgment = 9,\r\n SearchResultJudicialInterpret = 10,\r\n SearchResultLawRule = 11,\r\n CompleteSearch = 12,\r\n NoteJudgment = 13,\r\n NoteJudicialInterpret = 14,\r\n NoteLawRule = 15,\r\n ShareJudgment = 16,\r\n ShareJudicialInterpret = 17,\r\n ShareLawRule = 18,\r\n RecommendFriend = 19,\r\n WaitReview = 20,\r\n // Managment = 21,\r\n Share = 22,\r\n MemberProfile = 23,\r\n StopMobile = 24,\r\n NoteIndictment = 25,\r\n ShareIndictment = 26,\r\n TeamAnnounce = 27,\r\n TeamAddMember = 28,\r\n TeamMember = 29,\r\n TeamSharedStorage = 30,\r\n BuildTeam = 31,\r\n TeamNoteJudgment = 32,\r\n TeamNoteJudicialInterpret = 33,\r\n TeamNoteIndictment = 34,\r\n NEWS = 35,\r\n MyTeam = 36,\r\n FavLawRule = 37,\r\n TeamStorageJudgment = 38,\r\n TeamStorageJudicialInterpret = 39,\r\n TeamLesson = 40,\r\n}\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { LoginInvalidPopupComponent } from './login-invalid-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoginInvalidPopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(LoginInvalidPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup();\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\n\r\n@Component({\r\n selector: 'app-login-invalid-popup',\r\n templateUrl: './login-invalid-popup.component.html',\r\n styleUrls: ['./login-invalid-popup.component.scss']\r\n})\r\nexport class LoginInvalidPopupComponent extends BasePopup implements OnInit {\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n initPopup(): void { }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n clickConfirm(): void {\r\n location.reload();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
登入失效
\r\n
\r\n
\r\n
\r\n
該次登入已失效,請重新開啟頁面進行登入
\r\n
\r\n
重啟登入頁面
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoginInvalidPopupComponent } from './login-invalid-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule\r\n ],\r\n declarations: [LoginInvalidPopupComponent],\r\n exports: [LoginInvalidPopupComponent]\r\n})\r\nexport class LoginInvalidPopupModule { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { MaintenancePopupComponent } from './maintenance-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MaintenancePopupOpenerService {\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(MaintenancePopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(\r\n shutdownTimeTick: number,\r\n length: number,\r\n ): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(\r\n shutdownTimeTick,\r\n length\r\n );\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\n\r\n@Component({\r\n selector: 'app-maintenance-popup',\r\n templateUrl: './maintenance-popup.component.html',\r\n styleUrls: ['./maintenance-popup.component.scss']\r\n})\r\nexport class MaintenancePopupComponent extends BasePopup implements OnInit {\r\n\r\n shutdownTime: Date;\r\n length: number;\r\n\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n public appCommonService: AppCommonService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n initPopup(\r\n shutdownTimeTick: number,\r\n length: number\r\n ): void {\r\n this.shutdownTime = new Date(shutdownTimeTick);\r\n\r\n console.log(shutdownTimeTick);\r\n console.log(new Date(shutdownTimeTick));\r\n console.log(this.shutdownTime.getTime());\r\n console.log(this.appCommonService.convertTimeTickToPastTimeText1(shutdownTimeTick));\r\n console.log(this.appCommonService.convertTimeTickToPastTimeText1(this.shutdownTime.getTime()));\r\n\r\n this.length = length;\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n clickConfirm(): void {\r\n this.closePopup();\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n\r\n getShutdownTimeText(): string {\r\n return this.appCommonService.convertTimeTickToPastTimeText1(this.shutdownTime.getTime());\r\n }\r\n}\r\n","
0\">\r\n \r\n
\r\n \r\n
\r\n
關機預告
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n 本站將於今日 {{getShutdownTimeText()}} 進行服務端版本更新
\r\n 提醒您立即「儲存」手邊的筆記作業
\r\n 並等待 {{length}} 分鐘即可重新啟用。\r\n \r\n
\r\n
\r\n
謝謝預告
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
更新預告
\r\n \r\n
\r\n
\r\n
\r\n
\r\n 本站將於今日 {{getShutdownTimeText()}} 進行客戶端版本更新
\r\n 提醒您優先「儲存」手邊的筆記作業
\r\n 並等待版本自動檢測視窗或屆時手動「重新整理」頁面。\r\n
\r\n
\r\n
謝謝預告
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MaintenancePopupComponent } from './maintenance-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [MaintenancePopupComponent],\r\n exports: [MaintenancePopupComponent]\r\n})\r\nexport class MaintenancePopupModule { }\r\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\r\nimport { NgStyle } from '@angular/common';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { MaskFullScreen } from './mask-full-screen';\r\n\r\n@Component({\r\n selector: 'app-mask-full-screen',\r\n templateUrl: './mask-full-screen.component.html',\r\n styleUrls: ['./mask-full-screen.component.scss']\r\n})\r\nexport class MaskFullScreenComponent implements OnInit, OnDestroy {\r\n\r\n @Input() style: any;\r\n\r\n private styleTag: HTMLStyleElement;\r\n\r\n constructor(\r\n private deviceDetectorService: DeviceDetectorService\r\n ) {\r\n this.styleTag = this.buildStyleElement();\r\n }\r\n\r\n ngOnInit() {\r\n if (Object.keys(MaskFullScreen.openedMask).length === 0) {\r\n MaskFullScreen.htmlScrollTop = document.documentElement.scrollTop;\r\n document.documentElement.scrollTop = 0;\r\n }\r\n MaskFullScreen.openedMask[this.styleTag.id] = this.styleTag;\r\n document.body.appendChild(this.styleTag);\r\n }\r\n ngOnDestroy() {\r\n delete MaskFullScreen.openedMask[this.styleTag.id];\r\n document.body.removeChild(this.styleTag);\r\n if (Object.keys(MaskFullScreen.openedMask).length === 0) {\r\n document.documentElement.scrollTop = MaskFullScreen.htmlScrollTop;\r\n }\r\n console.log(MaskFullScreen.openedMask);\r\n\r\n }\r\n\r\n private buildStyleElement(): HTMLStyleElement {\r\n\r\n const style = document.createElement('style');\r\n style.id = Guid.newGuid();\r\n style.type = 'text/css';\r\n // if (this.deviceDetectorService.isDesktop()) {\r\n // }\r\n // style.setAttribute('data-debug', 'Injected by WindowScrolling service.');\r\n // style.textContent = `body {overflow: hidden !important ;}`;\r\n // style.textContent = `body,html {overflow: hidden !important;position:fixed;}`;\r\n return (style);\r\n }\r\n}\r\n","
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MaskFullScreenComponent } from './mask-full-screen.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n declarations: [MaskFullScreenComponent],\r\n exports: [MaskFullScreenComponent]\r\n})\r\nexport class MaskFullScreenModule { }\r\n","import { MaskFullScreenComponent } from './mask-full-screen.component';\r\n\r\nexport class MaskFullScreen {\r\n static openedMask: { [key: string]: HTMLStyleElement } = {};\r\n static htmlScrollTop: number = 0;\r\n\r\n // styleElement: HTMLStyleElement;\r\n // openTime: number;\r\n}\r\n","import { MatDialogRef, MatDialogConfig } from '@angular/material/dialog';\r\n\r\nexport class MaterialHelper {\r\n static openDialog(dlRef: () => MatDialogRef): MatDialogRef {\r\n const sourceScrollTop = document.documentElement.scrollTop;\r\n\r\n const _dlRef = dlRef();\r\n\r\n // body或html 加固定或超出隱藏,小畫面顯示都會不正常\r\n // const styleTag: HTMLStyleElement = document.createElement('style');\r\n // styleTag.type = 'text/css';\r\n // styleTag.textContent = `body {overflow:hidden;} html{overflow:hidden;}`;\r\n // styleTag.textContent = `body {overflow:hidden;}`;\r\n // document.body.appendChild(styleTag);\r\n\r\n // const cdkOverlayContainer: HTMLElement = document.querySelector('.cdk-overlay-container');\r\n // cdkOverlayContainer.style.top = sourceScrollTop + 'px';\r\n // _dlRef.afterClosed().subscribe(() => {\r\n // cdkOverlayContainer.style.top = '';\r\n // // document.body.removeChild(styleTag);\r\n // });\r\n\r\n return _dlRef;\r\n }\r\n\r\n static get commonDialogConfig(): MatDialogConfig {\r\n return {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '900px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n };\r\n }\r\n}\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { RootManagementService } from 'projects/desktop/src/app/root/root-management/root-management.service';\r\nimport { PaidInfo } from './paid-info';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\n\r\n@Component({\r\n selector: 'app-member-permission-config-popup',\r\n templateUrl: './member-permission-config-popup.component.html',\r\n styleUrls: ['./member-permission-config-popup.component.scss']\r\n})\r\nexport class MemberPermissionConfigPopupComponent extends BasePopup implements OnInit {\r\n member_id: string;\r\n is_enable: boolean;\r\n enable_time_text: string;\r\n expire_time_text: string;\r\n comment: string;\r\n\r\n paidLogs: PaidInfo[] = [];\r\n\r\n\r\n callback: () => void;\r\n\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n public appCommonService: AppCommonService,\r\n private rootManagementService: RootManagementService,\r\n ) { super(); }\r\n\r\n ngOnInit() { }\r\n initPopup(\r\n data: any,\r\n callback: () => void,\r\n ): void {\r\n this.member_id = data.member_id;\r\n this.comment = data.paid_member_comment;\r\n this.callback = callback;\r\n // this.is_enable = enable_time ? true : false;\r\n const enable_time = data.paid_member_pass_time > 0 ? data.paid_member_pass_time : 0;\r\n const expire_time = data.paid_member_expire_time > 0 ? data.paid_member_expire_time : 0;\r\n if (enable_time != null && new Date().getTime() < expire_time) {\r\n this.is_enable = true;\r\n }\r\n if (enable_time > 0) {\r\n this.enable_time_text = this.appCommonService.convertTimeTickToTimeText1(enable_time);\r\n }\r\n if (expire_time > 0) {\r\n this.expire_time_text = this.appCommonService.convertTimeTickToTimeText1(expire_time);\r\n }\r\n\r\n if (data.paid_member_log != null) {\r\n this.paidLogs = [];\r\n for (let i = 0; i < data.paid_member_log.length; i++) {\r\n const element = data.paid_member_log[i];\r\n const pl = Serializable.extendObjectFromResponseObject(new PaidInfo(), element);\r\n pl.comment = element.comment;\r\n pl.enable_time = '無設定';\r\n pl.expire_time = '無設定';\r\n pl.log_time = '無時間紀錄';\r\n if (element.log_time != null) {\r\n const date = new Date(Date.parse(element.log_time));\r\n const year = (date.getFullYear() - 1911).toString().padStart(3, '0');\r\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n const day = (date.getDate()).toString().padStart(2, '0');\r\n const hour = (date.getHours()).toString().padStart(2, '0');\r\n const min = (date.getMinutes()).toString().padStart(2, '0');\r\n const sec = (date.getSeconds()).toString().padStart(2, '0');\r\n pl.log_time = `${year}/${month}/${day} ${hour}:${min}:${sec}`;\r\n }\r\n if (element.enable_time > 0) {\r\n const date = new Date(element.enable_time);\r\n const year = (date.getFullYear() - 1911).toString().padStart(3, '0');\r\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n const day = (date.getDate()).toString().padStart(2, '0');\r\n const hour = (date.getHours()).toString().padStart(2, '0');\r\n const min = (date.getMinutes()).toString().padStart(2, '0');\r\n const sec = (date.getSeconds()).toString().padStart(2, '0');\r\n pl.enable_time = `${year}/${month}/${day} ${hour}:${min}:${sec}`;\r\n }\r\n if (element.enable_time > 0 && element.expire_time < 0) {\r\n const date = new Date(element.enable_time + (31536000000));\r\n const year = (date.getFullYear() - 1911).toString().padStart(3, '0');\r\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n const day = (date.getDate()).toString().padStart(2, '0');\r\n const hour = (date.getHours()).toString().padStart(2, '0');\r\n const min = (date.getMinutes()).toString().padStart(2, '0');\r\n const sec = (date.getSeconds()).toString().padStart(2, '0');\r\n pl.expire_time = `${year}/${month}/${day} ${hour}:${min}:${sec}`;\r\n } else if (element.expire_time > 0) {\r\n const date = new Date(element.expire_time);\r\n const year = (date.getFullYear() - 1911).toString().padStart(3, '0');\r\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n const day = (date.getDate()).toString().padStart(2, '0');\r\n const hour = (date.getHours()).toString().padStart(2, '0');\r\n const min = (date.getMinutes()).toString().padStart(2, '0');\r\n const sec = (date.getSeconds()).toString().padStart(2, '0');\r\n pl.expire_time = `${year}/${month}/${day} ${hour}:${min}:${sec}`;\r\n }\r\n this.paidLogs.push(pl);\r\n }\r\n\r\n }\r\n\r\n // for (let i = 0; i < 20; i++) {\r\n // this.paidLogs.push({\r\n // enable_time: '000/00/00 00:00:00',\r\n // expire_time: '000/00/00 00:00:00',\r\n // comment: 'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'\r\n // });\r\n // }\r\n\r\n\r\n\r\n }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n clickConfirm(): void {\r\n // this.rootManagementService.updateMemberPaid({\r\n // member_id: this.member_id,\r\n // enable: this.is_enable,\r\n // comment: this.comment,\r\n // }).subscribe(() => {\r\n // this.callback();\r\n // });\r\n\r\n this.closePopup();\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
帳號權限
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
付費會員
\r\n \r\n
{{enable_time_text}} ~ {{expire_time_text}}
\r\n
\r\n
\r\n
備註
\r\n \r\n
\r\n
\r\n
\r\n
確定
\r\n
取消
\r\n
\r\n
\r\n
\r\n
紀錄:無紀錄
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
期間備註
\r\n
{{pi.name+'/'+pi.nickname}}
\r\n
操作時間:{{pi.log_time}}
\r\n
起:{{pi.enable_time}}
\r\n
止:{{pi.expire_time}}
\r\n
\r\n
{{pi.comment}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MemberPermissionConfigPopupComponent } from './member-permission-config-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [MemberPermissionConfigPopupComponent],\r\n exports: [MemberPermissionConfigPopupComponent]\r\n})\r\nexport class MemberPermissionConfigPopupModule { }\r\n","export class PaidInfo {\r\n enable_time: string;\r\n expire_time: string;\r\n comment: string;\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-member-profile-change-popup',\r\n templateUrl: './member-profile-change-popup.component.html',\r\n styleUrls: ['./member-profile-change-popup.component.scss']\r\n})\r\nexport class MemberProfileChangePopupComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
申請個人資料修改
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
為了您的帳號安全,若想更改上鎖項目
請洽官方LINE@客服
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MemberProfileChangePopupComponent } from './member-profile-change-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [MemberProfileChangePopupComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [MemberProfileChangePopupComponent]\r\n})\r\nexport class MemberProfileChangePopupModule { }\r\n","import { Component, OnInit, ViewChild, ElementRef, ViewEncapsulation } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { MemberProfile } from '../member/member-profile';\r\nimport { ProfileEditAddress } from './profile-edit-address';\r\nimport { ProfileEditGoal } from './profile-edit-goal';\r\nimport { ProfileEditHelp } from './profile-edit-help';\r\nimport { ProfileEditBirthday } from './profile-edit-birthday';\r\nimport { ProfileEditJob } from './profile-edit-job';\r\nimport { ProfileEditNickname } from './profile-edit-nickname';\r\nimport { ProfileEditPicture } from './profile-edit-picture';\r\nimport { NgxCroppieComponent } from 'ngx-croppie';\r\nimport { UpdateMemberProfileRequest } from './update-member-profile-request';\r\nimport { MemberService } from '../member/member.service';\r\nimport { LoadingIconService } from '../loading-icon/loading-icon.service';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\nimport { RootApplyMemberService } from 'projects/desktop/src/app/root/root-apply-member/root-apply-member.service';\r\nimport { ChildContent, RootMainService } from 'projects/desktop/src/app/root/root-main/root-main.service';\r\n\r\n@Component({\r\n selector: 'app-member-profile-edit-popup',\r\n templateUrl: './member-profile-edit-popup.component.html',\r\n styleUrls: ['./member-profile-edit-popup.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MemberProfileEditPopupComponent extends BasePopup implements OnInit {\r\n @ViewChild('ngxCroppie') ngxCroppie: NgxCroppieComponent;\r\n @ViewChild('pictureFileInputElementRef', { static: true }) pictureFileInputElementRef: ElementRef;\r\n\r\n hasEdit: boolean;\r\n editedProfile: MemberProfile;\r\n profile: MemberProfile;\r\n\r\n steps: { [key: string]: any } = {\r\n Picture: new ProfileEditPicture(() => this.ngxCroppie, () => this.pictureFileInputElementRef),\r\n Nickname: new ProfileEditNickname(),\r\n Job: new ProfileEditJob(this.rootApplyMemberService),\r\n Birthday: new ProfileEditBirthday(),\r\n Address: new ProfileEditAddress(),\r\n Goal: new ProfileEditGoal(),\r\n Help: new ProfileEditHelp(),\r\n };\r\n\r\n\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n private rootApplyMemberService: RootApplyMemberService,\r\n private memberService: MemberService,\r\n private loadingIconService: LoadingIconService,\r\n private rootMainService: RootMainService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n initPopup(profile: MemberProfile): void {\r\n this.profile = profile;\r\n this.updateEditedProfile(this.profile);\r\n }\r\n updateEditedProfile(profile: MemberProfile): void {\r\n this.editedProfile = JSON.parse(JSON.stringify(profile));\r\n Object.keys(this.steps)\r\n .forEach(key => {\r\n this.steps[key].updateProfile(this.editedProfile);\r\n });\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n\r\n\r\n disableSubmit(): boolean {\r\n const json1 = JSON.stringify(this.profile);\r\n const json2 = JSON.stringify(this.editedProfile);\r\n\r\n return json1 === json2\r\n || !Object.keys(this.steps)\r\n .every(key => this.steps[key].checkInputDone());\r\n }\r\n checkInput(): void {\r\n Object.keys(this.steps)\r\n .every(key => {\r\n console.log(key, this.steps[key].checkInputDone());\r\n return this.steps[key].checkInputDone();\r\n });\r\n }\r\n submit(): void {\r\n // const json1 = JSON.stringify(this.profile);\r\n // const json2 = JSON.stringify(this.editedProfile);\r\n // console.log(json1 + '\\n' + json2);\r\n const postData: UpdateMemberProfileRequest = new UpdateMemberProfileRequest();\r\n postData.data = {};\r\n Object.keys(this.editedProfile).forEach(key => {\r\n if (this.editedProfile[key] !== this.profile[key]) {\r\n postData.data[key] = this.editedProfile[key];\r\n }\r\n });\r\n\r\n console.log(postData);\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.MemberProfile);\r\n this.memberService.updateMemberProfile(postData).subscribe(result => {\r\n this.rootMainService.selectChildContent(ChildContent.MemberProfileManagement);\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.MemberProfile);\r\n this.closePopup();\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
申請變更
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
變更照片
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
姓名
\r\n
\r\n
{{profile.name}}
\r\n
\r\n
\r\n
找小編
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
暱稱
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
職業
\r\n
\r\n
{{steps.Job.selectedJob()}}
\r\n
\r\n
\r\n
{{jobItem.name}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
律師證號
\r\n
\r\n \r\n 臺檢證字第\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
事務所名
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
事務所名
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
就讀學校
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
就讀科系
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
學生證號
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
公司名稱
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
職務名稱
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
機關
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
職務名稱
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
畢業學校
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
畢業科系
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
國考目標
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
教職學校
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
教育科系
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
生日
\r\n
\r\n \r\n 民國\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
手機
\r\n
\r\n
{{profile.phone}}
\r\n
\r\n
\r\n
找小編
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
信箱
\r\n
\r\n
{{profile.mail}}
\r\n
\r\n
\r\n
找小編
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
現居
\r\n
\r\n
{{steps.Address.selectedCity()}}
\r\n
\r\n
\r\n
{{city}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
目標
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
幫我
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
送出資料
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MemberProfileEditPopupComponent } from './member-profile-edit-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgxCroppieModule } from 'projects/lwlib/src/ngx-croppie/ngx-croppie.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n NgxCroppieModule,\r\n ],\r\n declarations: [MemberProfileEditPopupComponent],\r\n exports: [MemberProfileEditPopupComponent]\r\n})\r\nexport class MemberProfileEditPopupModule { }\r\n","import { MemberProfile } from '../member/member-profile';\r\n\r\nexport class ProfileEditAddress {\r\n editedProfile: MemberProfile;\r\n\r\n address: string = '';\r\n addressList: string[] = [\r\n '台北市',\r\n '基隆市',\r\n '新北市',\r\n '連江縣',\r\n '宜蘭縣',\r\n '新竹市',\r\n '新竹縣',\r\n '桃園市',\r\n '苗栗縣',\r\n '台中市',\r\n '彰化縣',\r\n '南投縣',\r\n '嘉義市',\r\n '嘉義縣',\r\n '雲林縣',\r\n '台南市',\r\n '高雄市',\r\n '澎湖縣',\r\n '金門縣',\r\n '屏東縣',\r\n '台東縣',\r\n '花蓮縣'\r\n ];\r\n showMenu: boolean = false;\r\n\r\n constructor() { }\r\n\r\n updateProfile(editedProfile: MemberProfile): void {\r\n this.editedProfile = editedProfile;\r\n this.address = editedProfile.address;\r\n }\r\n\r\n\r\n selectedCity(): string {\r\n return this.address == null ? '請選擇' : this.address;\r\n }\r\n toggleMenu(): void {\r\n this.showMenu = !this.showMenu;\r\n }\r\n\r\n checkCursorClickTarget(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some((a: HTMLElement) =>\r\n a instanceof HTMLElement\r\n && (\r\n a.classList.contains('choose-city-menu-button')\r\n || a.classList.contains('choose-city-menu')\r\n ));\r\n }\r\n checkClickCloseMenu(ev: MouseEvent): void {\r\n // console.log('c ', ev.target);\r\n if (!this.checkCursorClickTarget(ev)) {\r\n this.showMenu = false;\r\n }\r\n }\r\n\r\n selectCity(city: string): void {\r\n this.address = city;\r\n this.editedProfile.address = city;\r\n this.showMenu = false;\r\n }\r\n\r\n checkInputDone(): boolean {\r\n return this.editedProfile.address.length > 0;\r\n }\r\n}\r\n","import { MemberProfile } from '../member/member-profile';\r\n\r\nexport class ProfileEditBirthday {\r\n editedProfile: MemberProfile;\r\n\r\n text1: string = '';\r\n text2: string = '';\r\n text3: string = '';\r\n\r\n constructor() { }\r\n\r\n updateProfile(editedProfile: MemberProfile): void {\r\n this.editedProfile = editedProfile;\r\n this.tryUpdateBirthdayProfileToText();\r\n }\r\n onInput(): void {\r\n this.editedProfile.birthday = this.tryGetBirthdayText();\r\n }\r\n\r\n getBirthdayText(): string {\r\n let birthdayText: string = '';\r\n try {\r\n birthdayText =\r\n '民國 ' + parseInt(this.text1, 10).toString()\r\n + ' 年 ' + parseInt(this.text2, 10).toString().padStart(2, '0')\r\n + ' 月 ' + parseInt(this.text3, 10).toString().padStart(2, '0')\r\n + ' 日';\r\n } catch (error) {\r\n }\r\n return birthdayText;\r\n }\r\n tryParseBirthdayText(birthdayText: string): string[] {\r\n const result = [];\r\n try {\r\n const bTexts = this.editedProfile.birthday.split('-');\r\n result.push((parseInt(bTexts[0], 10) - 1911).toString());\r\n result.push(parseInt(bTexts[1], 10).toString());\r\n result.push(parseInt(bTexts[2], 10).toString());\r\n // return true;\r\n } catch (error) {\r\n // return false;\r\n }\r\n return result;\r\n }\r\n tryGetBirthdayText(): string {\r\n try {\r\n const birthdayText = (parseInt(this.text1, 10) + 1911)\r\n + '-' + this.text2.padStart(2, '0')\r\n + '-' + this.text3.padStart(2, '0');\r\n return birthdayText;\r\n } catch (error) {\r\n return this.editedProfile.birthday;\r\n }\r\n }\r\n tryUpdateBirthdayProfileToText(): void {\r\n try {\r\n const textArr = this.tryParseBirthdayText(this.editedProfile.birthday);\r\n this.text1 = textArr[0];\r\n this.text2 = textArr[1];\r\n this.text3 = textArr[2];\r\n } catch (error) {\r\n this.text1 = '';\r\n this.text2 = '';\r\n this.text3 = '';\r\n }\r\n }\r\n\r\n\r\n checkInputDone(): boolean {\r\n return this.editedProfile.birthday.length > 0;\r\n }\r\n}\r\n","import { MemberProfile } from '../member/member-profile';\r\n\r\nexport class ProfileEditGoal {\r\n editedProfile: MemberProfile;\r\n\r\n goal: any = {\r\n '國考目標': { text: '國考目標', checked: false, value: '' },\r\n '升學考試': { text: '升學考試', checked: false, value: '' },\r\n '其他': { text: '其他', checked: false, value: '' }\r\n };\r\n goalList = [];\r\n\r\n\r\n constructor() { }\r\n\r\n updateProfile(editedProfile: MemberProfile): void {\r\n this.editedProfile = editedProfile;\r\n this.goalList = [];\r\n\r\n const goal = JSON.parse(editedProfile.goal);\r\n for (const item of goal) {\r\n const goalItem = this.goal[item['text']];\r\n goalItem.checked = item.checked;\r\n goalItem.value = (item.value ? item.value : '');\r\n }\r\n for (const key in this.goal) {\r\n if (this.goal.hasOwnProperty(key)) {\r\n const element = this.goal[key];\r\n this.goalList.push(element);\r\n }\r\n }\r\n }\r\n\r\n onChange(): void {\r\n this.editedProfile.goal = JSON.stringify(this.goalList);\r\n }\r\n checkInputDone(): boolean { return true; }\r\n}\r\n","import { MemberProfile } from '../member/member-profile';\r\n\r\nexport class ProfileEditHelp {\r\n editedProfile: MemberProfile;\r\n\r\n help: any = {\r\n '提供法條學習重點': { text: '提供法條學習重點', checked: false },\r\n '提供筆記正確做法': { text: '提供筆記正確做法', checked: false },\r\n '提供實務裁判案例': { text: '提供實務裁判案例', checked: false },\r\n '提供著作出版機會': { text: '提供著作出版機會', checked: false },\r\n '提供法律工作職缺': { text: '提供法律工作職缺', checked: false },\r\n '提供系統使用教學': { text: '提供系統使用教學', checked: false },\r\n '應徵法律工作人才': { text: '應徵法律工作人才', checked: false },\r\n };\r\n helpList = [];\r\n\r\n\r\n constructor() { }\r\n\r\n updateProfile(editedProfile: MemberProfile): void {\r\n this.editedProfile = editedProfile;\r\n this.helpList = [];\r\n\r\n const help = JSON.parse(editedProfile.help);\r\n for (const item of help) {\r\n const helpItem = this.help[item];\r\n helpItem.checked = true;\r\n }\r\n for (const key in this.help) {\r\n if (this.help.hasOwnProperty(key)) {\r\n const element = this.help[key];\r\n this.helpList.push(element);\r\n }\r\n }\r\n }\r\n\r\n onChange(): void {\r\n this.editedProfile.help = JSON.stringify(\r\n this.helpList\r\n .filter(v => v.checked)\r\n .map(v => v.text)\r\n );\r\n }\r\n checkInputDone(): boolean { return true; }\r\n}\r\n","import { MemberProfile } from '../member/member-profile';\r\nimport { RootApplyMemberService } from 'projects/desktop/src/app/root/root-apply-member/root-apply-member.service';\r\nimport { JobId } from 'projects/desktop/src/app/root/root-apply-member/job-id.enum';\r\nimport { EventEmitter } from '@angular/core';\r\n\r\nexport class ProfileEditJob {\r\n editedProfile: MemberProfile;\r\n\r\n jobPass: EventEmitter = new EventEmitter();\r\n\r\n job: { id: JobId, name: string };\r\n\r\n showMenu: boolean = false;\r\n\r\n jobs: { [key in keyof typeof JobId]: { id: JobId, name: string } };\r\n jobList: { id: JobId, name: string }[] = [\r\n { id: JobId.LawCollegeStudent, name: 'A1 法律系大學生' },\r\n { id: JobId.LawMasterStudent, name: 'A2 法律系碩士生' },\r\n { id: JobId.LawPhdStudent, name: 'A3 法律系博士生' },\r\n { id: JobId.OtherDeptStudent, name: 'A4 其他科系在學生' },\r\n { id: JobId.CertifiedLawyer, name: 'B1 執業律師' },\r\n { id: JobId.TraineeLawer, name: 'B2 實習律師' },\r\n { id: JobId.BankingLaw, name: 'B3 金融業法務員' },\r\n { id: JobId.InsuranceLaw, name: 'B4 保險業法務員' },\r\n { id: JobId.GeneralLaw, name: 'B5 一般法務人員' },\r\n { id: JobId.JudicialCivilServant, name: 'B6 司法公務人員' },\r\n { id: JobId.AdministrationCivilServant, name: 'B7 行政公務人員' },\r\n { id: JobId.OtherJob, name: 'B8 其他行業(非法律人)' },\r\n { id: JobId.PrepareNationExam, name: 'C1 法律系畢業,準備國考者' },\r\n { id: JobId.PrepareNationExamNotLaw, name: 'C2 非法律系畢業,準備國考者' },\r\n { id: JobId.LawProfessor, name: 'D1 法律系教授、講師' },\r\n { id: JobId.NotLawProfessor, name: 'D2 非法律系教授、講師' },\r\n ];\r\n jobInputCount: { [key in keyof typeof JobId]: number } = {\r\n CertifiedLawyer: 3,\r\n TraineeLawer: 1,\r\n LawCollegeStudent: 3,\r\n LawMasterStudent: 3,\r\n LawPhdStudent: 3,\r\n OtherDeptStudent: 3,\r\n BankingLaw: 2,\r\n InsuranceLaw: 2,\r\n GeneralLaw: 2,\r\n JudicialCivilServant: 2,\r\n AdministrationCivilServant: 2,\r\n OtherJob: 2,\r\n PrepareNationExam: 3,\r\n PrepareNationExamNotLaw: 3,\r\n LawProfessor: 2,\r\n NotLawProfessor: 2,\r\n };\r\n\r\n jobInput1Text: string = '';\r\n jobInput2Text: string = '';\r\n jobInput3Text: string = '';\r\n\r\n checkedlawyerCert1: string = '';\r\n checkedlawyerCert2: string = '';\r\n waitCheckedlawyerCert: boolean = false;\r\n lawyerCertDuplicate: boolean = false;\r\n lawyerCertCheckResult: boolean = false;\r\n\r\n\r\n constructor(\r\n private rootApplyMemberService: RootApplyMemberService\r\n ) {\r\n this.jobs = {} as any;\r\n this.jobList.forEach(j => {\r\n this.jobs[JobId[j.id]] = j;\r\n });\r\n }\r\n\r\n updateProfile(editedProfile: MemberProfile): void {\r\n this.editedProfile = editedProfile;\r\n\r\n const profileJob = this.jobList.find(v => v.name === editedProfile.job);\r\n this.selectJob(profileJob);\r\n this.jobInput1Text = editedProfile.jobdetail1;\r\n this.jobInput2Text = editedProfile.jobdetail2;\r\n this.jobInput3Text = editedProfile.jobdetail3;\r\n }\r\n\r\n\r\n updateJobInput(): void {\r\n this.lawyerCertDuplicate = false;\r\n this.editedProfile.job = this.job.name;\r\n this.editedProfile.jobdetail1 = this.jobInput1Text;\r\n this.editedProfile.jobdetail2 = this.jobInput2Text;\r\n this.editedProfile.jobdetail3 = this.jobInput3Text;\r\n }\r\n\r\n selectedJob(): string {\r\n return this.job == null ? '請選擇' : this.job.name;\r\n }\r\n toggleMenu(): void {\r\n this.showMenu = !this.showMenu;\r\n }\r\n\r\n checkCursorClickTarget(ev: any): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.some((a: HTMLElement) =>\r\n a instanceof HTMLElement\r\n && (\r\n a.classList.contains('choose-job-menu-button')\r\n || a.classList.contains('choose-job-menu')\r\n ));\r\n }\r\n checkClickCloseMenu(ev: MouseEvent): void {\r\n // console.log('c ', ev.target);\r\n if (!this.checkCursorClickTarget(ev)) {\r\n this.showMenu = false;\r\n }\r\n }\r\n\r\n selectJob(job: { id: JobId, name: string }): void {\r\n this.job = job;\r\n\r\n this.jobInput1Text = '';\r\n this.jobInput2Text = '';\r\n this.jobInput3Text = '';\r\n\r\n this.showMenu = false;\r\n }\r\n checkSelectedInJobs(jobs: { id: JobId, name: string }[]): boolean {\r\n return jobs.find(j => j === this.job) != null;\r\n }\r\n\r\n checkSelectedJobInputs(): boolean {\r\n if (this.job == null) {\r\n return false;\r\n }\r\n\r\n const inputCount: number = this.jobInputCount[JobId[this.job.id]];\r\n const inputList = [\r\n this.editedProfile.jobdetail1,\r\n this.editedProfile.jobdetail2,\r\n this.editedProfile.jobdetail3\r\n ];\r\n\r\n let result: boolean = true;\r\n for (let i = 0; i < inputCount; i++) {\r\n const jobInputText = inputList[i];\r\n if (jobInputText.length === 0) {\r\n result = false;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n checkLawyerCertificate(): boolean {\r\n if (this.job !== this.jobs.CertifiedLawyer) {\r\n return true;\r\n }\r\n\r\n return this.lawyerCertCheckResult;\r\n }\r\n\r\n requestCheckLawyerCertificate(): void {\r\n const cert1 = this.jobInput1Text;\r\n const cert2 = this.jobInput2Text;\r\n\r\n if (cert1.length > 0\r\n && cert2.length > 0\r\n && !isNaN(parseInt(cert1, 10))\r\n && !isNaN(parseInt(cert2, 10))\r\n ) {\r\n const cert1Num = parseInt(cert1, 10);\r\n const cert2Num = parseInt(cert2, 10);\r\n\r\n this.waitCheckedlawyerCert = true;\r\n this.rootApplyMemberService.requestLawyerCertificateCheck(cert1Num, cert2Num)\r\n .subscribe((result: boolean) => {\r\n this.waitCheckedlawyerCert = false;\r\n if (result) {\r\n this.lawyerCertDuplicate = true;\r\n }\r\n this.lawyerCertCheckResult = !result;\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n checkInputDone(): boolean {\r\n return this.editedProfile.job\r\n && this.checkSelectedJobInputs()\r\n && this.checkLawyerCertificate();\r\n }\r\n}\r\n","import { MemberProfile } from '../member/member-profile';\r\n\r\nexport class ProfileEditNickname {\r\n editedProfile: MemberProfile;\r\n\r\n text: string = '';\r\n\r\n constructor() { }\r\n\r\n updateProfile(editedProfile: MemberProfile): void {\r\n this.editedProfile = editedProfile;\r\n this.text = editedProfile.nickname;\r\n }\r\n\r\n onInput(): void {\r\n this.editedProfile.nickname = this.text;\r\n }\r\n\r\n checkInputDone(): boolean {\r\n return this.editedProfile.nickname.length > 0;\r\n }\r\n}\r\n","import { MemberProfile } from '../member/member-profile';\r\nimport { NgxCroppieComponent } from 'ngx-croppie';\r\nimport { ElementRef, EventEmitter } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport class ProfileEditPicture {\r\n editedProfile: MemberProfile;\r\n\r\n croppieOptions: Croppie.CroppieOptions = {\r\n boundary: { width: 200, height: 200 },\r\n viewport: { width: 128, height: 128 },\r\n showZoomer: true,\r\n enableOrientation: true,\r\n enforceBoundary: true,\r\n };\r\n\r\n defaultImageUrl: string = '/assets/img/icon/default_pic.png';\r\n enableCrop: boolean = false;\r\n imageUrl: string = '';\r\n resultImageUrl: string = '';\r\n\r\n confirm: EventEmitter = new EventEmitter();\r\n\r\n getNgxCroppie: () => NgxCroppieComponent;\r\n getPictureFileInputElementRef: () => ElementRef;\r\n constructor(\r\n getNgxCroppie: () => NgxCroppieComponent,\r\n getPictureFileInputElementRef: () => ElementRef,\r\n ) {\r\n this.getNgxCroppie = getNgxCroppie;\r\n this.getPictureFileInputElementRef = getPictureFileInputElementRef;\r\n }\r\n updateProfile(editedProfile: MemberProfile): void {\r\n this.editedProfile = editedProfile;\r\n this.defaultImageUrl = editedProfile.picture;\r\n this.resultImageUrl = editedProfile.picture;\r\n }\r\n\r\n\r\n getPictureStyle(): any {\r\n let bgUrl: string = this.defaultImageUrl;\r\n if (this.resultImageUrl) {\r\n bgUrl = this.resultImageUrl;\r\n }\r\n return {\r\n 'background-image': 'url(' + bgUrl + ')'\r\n };\r\n }\r\n\r\n openFileSelector(): void {\r\n this.getPictureFileInputElementRef().nativeElement.click();\r\n }\r\n imageSelected(): void {\r\n const file = this.getPictureFileInputElementRef().nativeElement.files[0];\r\n if (file) {\r\n this.enableCrop = true;\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n this.imageUrl = reader.result as string;\r\n // console.log(this.getPictureFileInputElementRef().nativeElement);\r\n this.getPictureFileInputElementRef().nativeElement.value = '';\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n\r\n\r\n turnLeft(): void {\r\n // console.log(this.getNgxCroppie());\r\n this.getNgxCroppie().rotate(90);\r\n }\r\n turnRight(): void {\r\n // console.log(this.getNgxCroppie());\r\n this.getNgxCroppie().rotate(-90);\r\n }\r\n\r\n confirmCrop(): void {\r\n const cropSubscription: Subscription = this.getNgxCroppie().result.subscribe((result: string) => {\r\n this.resultImageUrl = result;\r\n this.editedProfile.picture = result;\r\n this.imageUrl = '';\r\n this.enableCrop = false;\r\n this.confirm.emit();\r\n cropSubscription.unsubscribe();\r\n });\r\n this.getNgxCroppie().newResult();\r\n }\r\n cancel(): void {\r\n this.imageUrl = '';\r\n this.enableCrop = false;\r\n }\r\n\r\n\r\n\r\n checkInputDone(): boolean {\r\n return this.editedProfile.picture.length > 0;\r\n }\r\n}\r\n","export class UpdateMemberProfileRequest {\r\n // nickname: string;\r\n // picture: string;\r\n // job: string;\r\n // jobdetail1: string;\r\n // jobdetail2: string;\r\n // jobdetail3: string;\r\n // birthday: string;\r\n // address: string;\r\n // goal: string;\r\n // help: string;\r\n data: any;\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
指定成員
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
全選
\r\n
\r\n
\r\n \r\n
\r\n
{{member.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
確定
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { TeamMemberStorage } from '../team/team-member-storage';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { TeamMember } from '../team/team-member';\r\n\r\n@Component({\r\n selector: 'app-member-select-popup',\r\n templateUrl: './member-select-popup.component.html',\r\n styleUrls: ['./member-select-popup.component.scss']\r\n})\r\nexport class MemberSelectPopupComponent implements OnInit {\r\n\r\n memberList: TeamMember[] = [];\r\n note: any = {};\r\n\r\n hasSameCaseMemberIds: { [key: string]: boolean } = {};\r\n selectedMemberIds: { [key: string]: boolean } = {};\r\n get isAllSelected(): boolean {\r\n return this.memberList.length > 0\r\n && this.memberList.every(m => this.selectedMemberIds[m.member_id]);\r\n }\r\n\r\n onConfirm: () => void;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n selectAll(): void {\r\n const setSelected = !this.isAllSelected;\r\n for (const member of this.memberList) {\r\n this.selectedMemberIds[member.member_id] = setSelected;\r\n }\r\n }\r\n selectMember(member: TeamMember): void {\r\n this.selectedMemberIds[member.member_id] = !this.selectedMemberIds[member.member_id];\r\n }\r\n\r\n clickConfirm(): void {\r\n this.onConfirm();\r\n }\r\n}\r\n","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MemberSelectPopupComponent } from './member-select-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [MemberSelectPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [MemberSelectPopupComponent]\r\n})\r\nexport class MemberSelectPopupModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Subject, BehaviorSubject, of, Observable, Subscription, forkJoin } from 'rxjs';\r\nimport { map, retry, tap } from 'rxjs/operators';\r\nimport { WaitReviewData } from 'projects/desktop/src/app/root/root-verify-page/wait-review-data';\r\nimport { MemberIdentity } from './member-identity.enum';\r\nimport { RecommendData } from './recommend-data';\r\nimport { RecommendMember } from './recommend-member';\r\nimport { MemberProfile } from './member-profile';\r\nimport { UpdateMemberProfileRequest } from '../member-profile-edit-popup/update-member-profile-request';\r\nimport { RewardPointInfo } from './reward-point-info';\r\nimport { NoteStatus } from './note-status';\r\nimport { ProfileUpdateRequest } from 'projects/desktop/src/app/root/root-member-profile-management-new/profile-update-request';\r\nimport { ProfileUpdateResult } from 'projects/desktop/src/app/root/root-member-profile-management-new/profile-update-result';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\n\r\n\r\nexport class MemberHeader {\r\n member_id: string;\r\n get_time: Date;\r\n /** 頭像 */\r\n picture: string;\r\n /** 名稱 */\r\n name: string;\r\n /** 暱稱 */\r\n nickname: string;\r\n reward_point: number;\r\n // 是否啟用全面檢索\r\n complete_search: boolean;\r\n // 是否有團隊\r\n has_team: boolean;\r\n // 是否管理員\r\n is_admin: boolean;\r\n\r\n getName(): string {\r\n if (this.name != null\r\n && this.name.trim().length > 0) {\r\n return this.name;\r\n }\r\n\r\n return this.nickname;\r\n }\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MemberService {\r\n memberHeader: MemberHeader;\r\n memberHeader$: BehaviorSubject = new BehaviorSubject(new MemberHeader());\r\n\r\n rewardPointInfo: RewardPointInfo;\r\n\r\n permissions: { [key: string]: string } = {};\r\n\r\n planStatus: any;\r\n\r\n member_id: string;\r\n get_time: Date;\r\n /** 頭像 */\r\n picture: string = '';\r\n pictureStyleUrl: string = '';\r\n /** 名稱 */\r\n name: string = '';\r\n /** 暱稱 */\r\n nickname: string = '';\r\n reward_point: number = 0;\r\n rewardPointString: string = '';\r\n // 是否啟用全面檢索\r\n complete_search: boolean;\r\n // 是否有團隊\r\n has_team: boolean;\r\n // 是否管理員\r\n is_admin: boolean;\r\n\r\n\r\n constructor(\r\n private service: AppService\r\n ) { }\r\n\r\n\r\n private setMemberHead(m: MemberHeader): void {\r\n this.member_id = m.member_id;\r\n this.get_time = m.get_time;\r\n this.picture = m.picture;\r\n this.pictureStyleUrl = m.picture ? `url(${m.picture})` : '';\r\n this.name = m.name;\r\n this.nickname = m.nickname;\r\n this.reward_point = m.reward_point;\r\n this.rewardPointString = m.reward_point.toLocaleString();\r\n this.complete_search = m.complete_search;\r\n this.has_team = m.has_team;\r\n this.is_admin = m.is_admin;\r\n }\r\n\r\n getMemberHeaderData(): Observable {\r\n return this.service.get('user/header')\r\n .pipe(\r\n map(m => {\r\n const mh: MemberHeader = Serializable.extendObjectFromResponseObject(new MemberHeader(), m);\r\n mh.get_time = new Date();\r\n return mh;\r\n })\r\n );\r\n }\r\n\r\n pullHeaderObserver(): Observable {\r\n return this.service.get('user/header')\r\n .pipe(\r\n tap((_memberHeader: any) => {\r\n let memberHeader: MemberHeader = _memberHeader ? _memberHeader : {};\r\n memberHeader = Serializable.extend(new MemberHeader(), memberHeader);\r\n memberHeader.get_time = new Date();\r\n this.setMemberHead(memberHeader);\r\n this.memberHeader = memberHeader;\r\n this.memberHeader$.next(memberHeader);\r\n })\r\n );\r\n }\r\n pullShareHeaderObserver(share_id: string): Observable {\r\n // share_header\r\n return this.service.get('user/share_header?share_id=' + share_id)\r\n .pipe(\r\n tap((_memberHeader: any) => {\r\n const memberHeader: MemberHeader = _memberHeader ? _memberHeader : {};\r\n memberHeader.get_time = new Date();\r\n this.setMemberHead(memberHeader);\r\n this.memberHeader = memberHeader;\r\n this.memberHeader$.next(memberHeader);\r\n })\r\n );\r\n }\r\n\r\n getWaitReviewData(): Observable {\r\n return this.service.get('user/wait_review');\r\n }\r\n\r\n requestRecommendData(): Observable {\r\n return this.service.get('user/recommend_data');\r\n }\r\n requestRecommendMemberList(): Observable {\r\n return this.service.get('user/recommend_member_list');\r\n }\r\n requestRecommendPassedMemberList(): Observable {\r\n return this.service.get('user/recommend_passed_member_list');\r\n }\r\n requestMemberProfile(): Observable {\r\n return this.service.get('user/profile');\r\n }\r\n requestMemberProfileByTeam(team_id: string, member_id: string): Observable {\r\n return this.service.getRaw(`user/profile?team_id=${team_id}&member_id=${member_id}`);\r\n }\r\n requestMemberProfileById2(member_id2: string): Observable {\r\n return this.service.getRaw(`user/profile?id2=${member_id2}`);\r\n }\r\n getNoteStatus(): Observable {\r\n return this.service.get('user/note_status');\r\n }\r\n getNoteStatusByTeam(team_id: string, member_id: string): Observable {\r\n return this.service.getRaw(`user/note_status?team_id=${team_id}&member_id=${member_id}`);\r\n }\r\n getNoteStatusById2(member_id2: string): Observable {\r\n return this.service.getRaw(`user/note_status?id2=${member_id2}`);\r\n }\r\n getTimeStatus(): Observable {\r\n return this.service.get('user/activity_time');\r\n }\r\n getTimeStatusByTeam(team_id: string, member_id: string): Observable {\r\n return this.service.getRaw(`user/activity_time?team_id=${team_id}&member_id=${member_id}`);\r\n }\r\n getTimeStatusById2(member_id2: string): Observable {\r\n return this.service.getRaw(`user/activity_time?id2=${member_id2}`);\r\n }\r\n\r\n updateMemberProfile(postData: UpdateMemberProfileRequest): Observable {\r\n return this.service.post('user/request_profile_update', postData);\r\n }\r\n\r\n getLastReviewMemberProfile(): Observable {\r\n return this.service.get('user/last_review_profile');\r\n }\r\n\r\n pullRewardPointInfo(): Observable {\r\n return this.service.get('user/reward_point_info')\r\n .pipe(\r\n tap(rpi => {\r\n this.rewardPointInfo = rpi;\r\n })\r\n );\r\n }\r\n pullPermission(): Observable<{ [key: string]: string }[]> {\r\n return forkJoin(\r\n this.service.get<{ [key: string]: string }>('judgment/permission?_=' + new Date().getTime()),\r\n this.service.get<{ [key: string]: string }>('judicial_interpret/permission?_=' + new Date().getTime()),\r\n this.service.get<{ [key: string]: string }>('law_rule/permission?_=' + new Date().getTime())\r\n ).pipe(\r\n tap(p => {\r\n this.permissions = {};\r\n p.forEach(_p => {\r\n Object.keys(_p).forEach(key => {\r\n this.permissions[key] = _p[key];\r\n });\r\n });\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n updateProfile(data: ProfileUpdateRequest[]): Observable {\r\n return this.service.post('user/profile_update', data);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CookieOptions, CookieService } from 'ngx-cookie';\r\nimport { SwUpdate } from '@angular/service-worker';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { catchError, concatMap, finalize } from 'rxjs/operators';\r\nimport { of, Observable, Subscription, from } from 'rxjs';\r\nimport { UrlQueryParser } from './url-query-parser';\r\nimport { AppConfigService } from 'projects/desktop/src/app/app-config.service';\r\nimport { environment } from 'projects/desktop/src/environments/environment';\r\nimport { AppService as AppServiceDesktop, LoginStatus } from 'projects/desktop/src/app/app.service';\r\nimport { Router } from '@angular/router';\r\nimport { LogPageId } from './log-page/log-page-id.enum';\r\nimport { LogPageRequest } from './log-page/log-page-request';\r\nimport { SignalR, SignalRConfiguration, SignalRConnection, BroadcastEventListener, ISignalRConnection, ConnectionStatuses, ConnectionStatus } from 'ng2-signalr';\r\nimport { ConnectionStatusName } from 'projects/mobile/src/app/common/common';\r\nimport { NotificationService } from './notification/notification.service';\r\nimport { IdlerService } from './idler/idler.service';\r\nimport { MaintenancePopupOpenerService } from './maintenance-popup/maintenance-popup-opener.service';\r\nimport { DangerWarningPopupOpenerService } from './danger-warning-popup/danger-warning-popup-opener.service';\r\nimport { LoginInvalidPopupOpenerService } from './login-invalid-popup/login-invalid-popup-opener.service';\r\nimport { checkIsMobileDevice } from './lib/lw-ext';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NetService {\r\n static protocolDict = {\r\n 'http:': 80,\r\n 'https:': 443,\r\n };\r\n static apiHost: string = 'legalworks.com.tw';\r\n static get port(): number { return NetService.protocolDict[location.protocol]; }\r\n static get facebookId(): string {\r\n if (location.hostname === 'localhost') {\r\n return '1160354147348056'; // 測試版\r\n }\r\n return '267882393544005'; // 線上版\r\n }\r\n static get apiUrl(): string { return `${location.protocol}//${NetService.apiHost}`; }\r\n // static get apiUrl(): string { return `${location.protocol}//192.168.1.128:${NetService.port}`; }\r\n\r\n debugLog: string = '';\r\n\r\n\r\n isDesktopDevice: boolean = false;\r\n isMobileDevice: boolean = false;\r\n\r\n isDesktopHost: boolean = false;\r\n isMobileHost: boolean = false;\r\n\r\n isIOS: boolean = false;\r\n\r\n static get IsOnline(): boolean {\r\n return location.hostname === 'legalworks.com.tw'\r\n || location.hostname === 'm.legalworks.com.tw';\r\n }\r\n static get IsLocalOrTest(): boolean {\r\n return !(location.hostname === 'legalworks.com.tw'\r\n || location.hostname === 'm.legalworks.com.tw');\r\n }\r\n static get IsLocal(): boolean {\r\n return /192\\.168\\./.test(location.hostname);\r\n }\r\n static get IsTest(): boolean {\r\n return /^\\d+\\.\\d+\\.\\d+\\.\\d+/.test(location.hostname);\r\n }\r\n\r\n private static Net_: NetService;\r\n static get Net(): NetService {\r\n return this.Net_;\r\n }\r\n\r\n get isOnline(): boolean { return NetService.IsOnline; }\r\n get isLocalOrTest(): boolean { return NetService.IsLocalOrTest; }\r\n get isLocal(): boolean { return NetService.IsLocal; }\r\n get isTest(): boolean { return NetService.IsTest; }\r\n\r\n private connection: SignalRConnection;\r\n private connectionStatus: ConnectionStatusName = ConnectionStatusName.disconnected;\r\n private connectionStatusUpdater: Subscription;\r\n private connectionErrorUpdater: Subscription;\r\n private signalrListener: { [key: string]: BroadcastEventListener } = {};\r\n private connectionCheckLoop;\r\n /** 阻擋登入失效彈窗重複跳出 */\r\n loginInvalidPopupBlock: boolean = false;\r\n onConnectionConnected: () => void;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private cookieService: CookieService,\r\n public swUpdate: SwUpdate,\r\n private deviceDetectorService: DeviceDetectorService,\r\n private _signalR: SignalR,\r\n private notificationService: NotificationService,\r\n private idlerService: IdlerService,\r\n private maintenancePopupOpenerService: MaintenancePopupOpenerService,\r\n private dangerWarningPopupOpenerService: DangerWarningPopupOpenerService,\r\n private loginInvalidPopupOpenerService: LoginInvalidPopupOpenerService,\r\n ) {\r\n console.log('net service constructor');\r\n\r\n if (NetService.Net_ == null) {\r\n NetService.Net_ = this;\r\n }\r\n\r\n if (!NetService.ProtocolInit()) {\r\n return;\r\n }\r\n\r\n if (this.deviceDetectorService.browser.toLowerCase() === 'safari') {\r\n this.isIOS = true;\r\n }\r\n\r\n const queryParams = UrlQueryParser.parse(location.search);\r\n // 檢查是否行動裝置\r\n this.isMobileDevice = checkIsMobileDevice();\r\n this.isDesktopDevice = !this.isMobileDevice;\r\n\r\n // 設定網站主機\r\n if (this.isLocal && location.port === '4200') {\r\n this.isDesktopHost = true;\r\n } else if (this.isLocal && location.port === '4201') {\r\n this.isMobileHost = true;\r\n } else if (/^m\\.legalworks\\.com\\.tw/.test(location.hostname)) {\r\n this.isMobileHost = true;\r\n } else if (/^(www\\.)*legalworks\\.com\\.tw/.test(location.hostname)) {\r\n this.isDesktopHost = true;\r\n }\r\n NetService.ApiHostInit();\r\n }\r\n\r\n /** host是否已經初始化 */\r\n static isHostInited: boolean = false;\r\n /** 網站是否使用https檢查 */\r\n static ProtocolInit(): boolean {\r\n if (NetService.IsOnline && location.protocol != 'https:') {\r\n location.protocol = 'https:';\r\n return false;\r\n }\r\n return true;\r\n }\r\n /** 最初進入網站時執行的網址檢查,並做對應的導向 */\r\n static ApiHostInit(): void {\r\n\r\n /** 檢查如果port是80以外 */\r\n const setApiPort = (callback: (port) => void) => {\r\n let port;\r\n if (location.port == '') {\r\n return;\r\n }\r\n\r\n if (location.port == '4200') { port = 7998; }\r\n else if (location.port == '4201') { port = 7998; }\r\n else {\r\n port = Number(location.port);\r\n }\r\n callback(port)\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // 本地\r\n if (location.hostname == 'localhost' || location.hostname == 'm.localhost') {\r\n // Net\r\n NetService.apiHost = location.host;\r\n setApiPort((port) => {\r\n NetService.protocolDict['http:'] = port;\r\n NetService.apiHost = location.hostname + ':' + port;\r\n });\r\n\r\n // App\r\n AppServiceDesktop.host = 'localhost';\r\n setApiPort((port) => {\r\n AppServiceDesktop.protocolDict['http:'] = port;\r\n });\r\n }\r\n\r\n // 本地IP 192.168\r\n else if (location.hostname.match(/^192\\.168\\.\\d+\\.\\d+$/)) {\r\n // Net\r\n NetService.apiHost = location.hostname;\r\n setApiPort((port) => {\r\n NetService.apiHost = `${location.hostname}:${port}`;\r\n });\r\n // App\r\n AppServiceDesktop.host = location.hostname;\r\n setApiPort((port) => {\r\n AppServiceDesktop.protocolDict['http:'] = port;\r\n });\r\n }\r\n\r\n // 其他IP\r\n else if (location.hostname.match(/^\\d+\\.\\d+\\.\\d+\\.\\d+/)) {\r\n // Net\r\n NetService.apiHost = location.hostname;\r\n setApiPort((port) => {\r\n NetService.apiHost = `${location.hostname}:${port}`;\r\n });\r\n // App\r\n AppServiceDesktop.host = location.hostname;\r\n setApiPort((port) => {\r\n AppServiceDesktop.protocolDict['http:'] = port;\r\n });\r\n }\r\n\r\n console.log('app service api host:' + AppServiceDesktop.host);\r\n\r\n }\r\n\r\n toDesktopSite(): void {\r\n console.log('toDesktopSite');\r\n\r\n // 紀錄當前網址\r\n // const currentUrlPath = location.pathname + location.search;\r\n // sessionStorage.setItem('login_redir', currentUrlPath);\r\n\r\n // 開始轉跳\r\n let url = '';\r\n if (location.hostname == 'm.legalworks.com.tw') {\r\n url = `${location.protocol}//legalworks.com.tw${location.pathname}${location.search}`;\r\n }\r\n /** 本地測試用轉跳 */\r\n else if (/^localhost/.test(location.host)\r\n || /^m\\.localhost/.test(location.host)\r\n || /192\\.168\\./.test(location.hostname)) {\r\n\r\n let host = location.hostname;\r\n // if (host == 'm.localhost') {\r\n // host = 'localhost';\r\n // }\r\n\r\n let port = '';\r\n // if (location.port == '4201') { port = '4200'; }\r\n // else\r\n if (location.port == '59996') { port = '59997'; }\r\n\r\n if (port) { port = ':' + port; }\r\n\r\n url = `${location.protocol}//${host}${port}${location.pathname}${location.search}`;\r\n\r\n } else {\r\n url = `${location.protocol}//${location.host}${location.pathname}${location.search}`;\r\n }\r\n // if (this.isLocal) {\r\n // url = `${location.protocol}//${location.hostname}:4200${location.pathname}${location.search}`;\r\n // } else if (location.port == '59996') {\r\n // url = `${location.protocol}//${location.hostname}:59997${location.pathname}${location.search}`;\r\n // } else {\r\n // url = `${location.protocol}//${location.host}${location.pathname}${location.search}`;\r\n // }\r\n console.log(url);\r\n location.href = url;\r\n }\r\n /** 轉跳到手機版 */\r\n toMobileSite(): void {\r\n console.log('toMobileSite');\r\n\r\n // 紀錄當前網址\r\n // const currentUrlPath = location.pathname + location.search;\r\n // sessionStorage.setItem('login_redir', currentUrlPath);\r\n\r\n // 開始轉跳\r\n let url = '';\r\n if (location.hostname == 'legalworks.com.tw') {\r\n url = `${location.protocol}//m.legalworks.com.tw${location.pathname}${location.search}`;\r\n }\r\n /** 本地測試用轉跳 */\r\n else if (/^localhost/.test(location.host)\r\n || /^m\\.localhost/.test(location.host)\r\n || /^192\\.168\\./.test(location.hostname)) {\r\n\r\n let host = location.hostname;\r\n // if (host == 'localhost') {\r\n // host = 'm.localhost';\r\n // }\r\n\r\n let port = '';\r\n // if (location.port == '4200') { port = '4201'; }\r\n // else\r\n if (location.port == '59997') { port = '59996'; }\r\n if (port) { port = ':' + port; }\r\n url = `${location.protocol}//${host}${port}${location.pathname}${location.search}`;\r\n\r\n } else {\r\n url = `${location.protocol}//${location.host}${location.pathname}${location.search}`;\r\n }\r\n\r\n // if (this.isLocal) {\r\n // url = `${location.protocol}//${location.hostname}:4201${location.pathname}${location.search}`;\r\n // } else {\r\n // url = `${location.protocol}//m.${location.host}${location.pathname}${location.search}`;\r\n // }\r\n console.log(url);\r\n location.href = url;\r\n }\r\n\r\n /** 紀錄 */\r\n log(id: LogPageId, query: string, id1: string): void {\r\n const postData: LogPageRequest = {\r\n id: id,\r\n query: query,\r\n id1: id1,\r\n };\r\n this.postRaw('user/log', postData).subscribe();\r\n }\r\n\r\n /**\r\n * @param relative_url relative_url => http://xxx/{relative_url}\r\n */\r\n get(relative_url: string, cors?: boolean, customToken?: string, type?: string): Observable {\r\n const url = `${location.protocol}//${NetService.apiHost}/${relative_url}`;\r\n const headerData: any = {};\r\n const token = this.cookieService.get('token');\r\n\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n if (customToken) {\r\n headerData.Authorization = customToken;\r\n }\r\n\r\n let typeName: string = 'application/json, text/plain, */*';\r\n if (type) {\r\n typeName = type;\r\n }\r\n return this.http.get(url, {\r\n headers: new HttpHeaders(headerData),\r\n withCredentials: true,\r\n // withCredentials : true,\r\n }).pipe(catchError((error) => {\r\n console.error(error);\r\n return of(error);\r\n }));\r\n }\r\n /**\r\n * @param relative_url relative_url => http://xxx/{relative_url}\r\n */\r\n getRaw(relative_url: string, param?: { [param: string]: string | string[] }): Observable {\r\n const url = `${location.protocol}//${NetService.apiHost}/${relative_url}`;\r\n const headerData: any = {\r\n credentials: 'include'\r\n };\r\n const token = this.cookieService.get('token');\r\n\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n\r\n return this.http.get(url, {\r\n headers: new HttpHeaders(headerData),\r\n withCredentials: true,\r\n params: param\r\n });\r\n }\r\n getRawAbs(url: string, param?: { [param: string]: string | string[] }): Observable {\r\n // const url = `${location.protocol}//${NetService.apiHost}/${relative_url}`;\r\n const headerData: any = {\r\n credentials: 'include'\r\n };\r\n const token = this.cookieService.get('token');\r\n\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n\r\n return this.http.get(url, {\r\n headers: new HttpHeaders(headerData),\r\n withCredentials: true,\r\n params: param\r\n });\r\n }\r\n postRaw(relative_url: string, data: any, param?: { [param: string]: string | string[] }): Observable {\r\n const url = `${location.protocol}//${NetService.apiHost}/${relative_url}`;\r\n const headerData: any = {\r\n 'Content-Type': 'application/json',\r\n credentials: 'include'\r\n };\r\n\r\n const token = this.cookieService.get('token');\r\n if (token) {\r\n headerData.Authorization = token;\r\n }\r\n\r\n return this.http.post(url, data, {\r\n headers: new HttpHeaders(headerData),\r\n withCredentials: true,\r\n params: param\r\n });\r\n }\r\n parseQueryString(locationSearchString: string): any {\r\n const querySubString = locationSearchString.substring(1);\r\n if (!querySubString) {\r\n return {};\r\n }\r\n\r\n const result: any = {};\r\n querySubString.split('&').forEach(v => {\r\n const v2 = v.split('=');\r\n result[v2[0]] = v2[1];\r\n });\r\n\r\n return result;\r\n }\r\n /** 檢查token的登入狀態 */\r\n checkLoginStatus(): Observable {\r\n const queryParams = this.parseQueryString(location.search);\r\n\r\n if (queryParams.token) {\r\n // console.log('write temp token ' + queryParams.token);\r\n this.writeCookie('token', queryParams.token, 0);\r\n }\r\n\r\n return this.get('user/token_status?_=' + new Date().getTime());\r\n }\r\n // 登入相關\r\n checkToken(): Observable {\r\n const token = this.cookieService.get('token');\r\n if (token == null || token.length === 0) {\r\n return of(false);\r\n }\r\n\r\n const headers: HttpHeaders = new HttpHeaders({\r\n Authorization: token\r\n });\r\n return this.http.get(NetService.apiUrl + '/user/token', { headers: headers });\r\n }\r\n isLogin(): Observable {\r\n // return this.loginStatus == LoginStatus.Logined;\r\n return this.checkToken();\r\n }\r\n\r\n /** 寫入cookie */\r\n writeCookie(key: string, value: string, days: number = 30): void {\r\n const expireDays = days;\r\n const expireDate = new Date();\r\n expireDate.setDate(expireDate.getDate() + expireDays);\r\n\r\n const cookieOption: CookieOptions = {};\r\n if (days > 0) {\r\n cookieOption.expires = expireDate;\r\n }\r\n cookieOption.path = '/';\r\n // expires: expireDate,\r\n // domain: location.hostname,\r\n\r\n // console.log('write cookie ', key, value, days, expireDate);\r\n this.cookieService.put(key, value, cookieOption);\r\n }\r\n\r\n\r\n /** 建立即時同步設定檔 */\r\n static createSignalRConfig(): SignalRConfiguration {\r\n const c = new SignalRConfiguration();\r\n // c.jsonp = true;\r\n c.hubName = 'onlinehub';\r\n c.url = `${location.protocol}//${location.hostname}:${NetService.port}`;\r\n // c.qs = { token: AppService.loginToken };\r\n c.logging = environment.production;\r\n // 開啟cors\r\n c.withCredentials = true;\r\n\r\n\r\n // >= v5.0.0\r\n c.executeEventsInZone = true; // optional, default is true\r\n c.executeErrorsInZone = false; // optional, default is false\r\n c.executeStatusChangeInZone = true; // optional, default is true\r\n return c;\r\n }\r\n\r\n /** 即時同步 - 開始連線 */\r\n signalrStart(): Observable {\r\n if (this.connectionStatus != ConnectionStatusName.disconnected) {\r\n return of(this.connection);\r\n }\r\n\r\n if (this.connection == null) {\r\n const token = this.cookieService.get('token');\r\n this.connection = this._signalR.createConnection({\r\n url: NetService.apiUrl,\r\n qs: { token: token }\r\n });\r\n }\r\n\r\n if (this.connectionStatusUpdater == null) {\r\n this.connectionStatusUpdater = this.connection.status.subscribe((status: ConnectionStatus) => {\r\n const statusName = status.value as ConnectionStatusName;\r\n this.connectionStatus = statusName;\r\n const statusNameString = ConnectionStatusName[statusName];\r\n console.log(`連線狀態:${statusNameString}`);\r\n this.notificationService.addNormal(`連線狀態:${statusNameString}`);\r\n\r\n if (statusName == ConnectionStatusName.connecting) {\r\n }\r\n else if (statusName == ConnectionStatusName.connected) {\r\n if (this.onConnectionConnected != null) {\r\n this.onConnectionConnected();\r\n }\r\n }\r\n else if (statusName == ConnectionStatusName.reconnecting) {\r\n\r\n }\r\n else if (statusName == ConnectionStatusName.disconnected) {\r\n\r\n }\r\n });\r\n }\r\n if (this.connectionErrorUpdater == null) {\r\n this.connectionErrorUpdater = this.connection.errors.subscribe((e) => {\r\n this.notificationService.addError('連線錯誤:' + e.message);\r\n console.error(e);\r\n });\r\n }\r\n if (this.connectionCheckLoop == null) {\r\n this.connectionCheckLoop = setInterval(() => {\r\n const status = this.getConnectionStatus();\r\n if (status == ConnectionStatusName.disconnected) {\r\n this.signalrStart().subscribe();\r\n } else if (status == ConnectionStatusName.connected) {\r\n this.signalrSend('ClientAutoPing', '');\r\n }\r\n }, 15000);\r\n }\r\n\r\n return from(\r\n this.connection.start()\r\n .catch(err => {\r\n throw err;\r\n })\r\n )\r\n .pipe(\r\n finalize(() => {\r\n this.notificationService.addNormal('signalr finalize');\r\n console.log('signalr finalize');\r\n })\r\n );\r\n }\r\n /** 即時同步 - 增加監聽 */\r\n signalrAddListener(name: string) {\r\n if (this.signalrListener[name]) {\r\n return this.signalrListener[name];\r\n // throw new Error('listener can not overwrite. unregister first.' + name);\r\n }\r\n if (this.connection) {\r\n this.signalrListener[name] = this.connection.listenFor(name);\r\n return this.signalrListener[name];\r\n }\r\n }\r\n /** 即時同步 - 移除監聽 */\r\n signalrRemoveListener(name: string) {\r\n if (this.signalrListener[name]) {\r\n this.connection.stopListening(this.signalrListener[name]);\r\n this.signalrListener[name] = null;\r\n }\r\n }\r\n /** 即時同步 - 發送給S */\r\n signalrSend(name: string, data: any) {\r\n if (this.connection == null) {\r\n this.notificationService.addError('尚未連線');\r\n return;\r\n }\r\n this.notificationService.addNormal('發送:' + name);\r\n if (data) {\r\n return this.connection.invoke(name, data);\r\n } else {\r\n return this.connection.invoke(name);\r\n }\r\n }\r\n getConnectionId(): string {\r\n return this.connection ? this.connection.id : '';\r\n }\r\n getConnectionStatus(): ConnectionStatusName {\r\n return this.connectionStatus;\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-new-update-popup',\r\n templateUrl: './new-update-popup.component.html',\r\n styleUrls: ['./new-update-popup.component.scss']\r\n})\r\nexport class NewUpdatePopupComponent implements OnInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n reloadPage(): void {\r\n location.reload();\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
發現新版本!
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NewUpdatePopupComponent } from './new-update-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [NewUpdatePopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [NewUpdatePopupComponent]\r\n})\r\nexport class NewUpdatePopupModule { }\r\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild, ElementRef } from '@angular/core';\r\n\r\nimport * as Croppie from 'croppie';\r\nimport { CroppieOptions, ResultOptions, CropData } from 'croppie';\r\n\r\nexport type Type = 'canvas' | 'base64' | 'html' | 'blob' | 'rawcanvas';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'ngx-croppie',\r\n template: `
`\r\n})\r\nexport class NgxCroppieComponent implements OnInit {\r\n @ViewChild('imageEdit', { static: true }) imageEdit: ElementRef;\r\n @Input() croppieOptions: CroppieOptions;\r\n @Input() points: number[];\r\n @Input() outputFormatOptions: ResultOptions = { type: 'base64', size: 'viewport' };\r\n @Input() defaultZoom = 0;\r\n @Output() result: EventEmitter\r\n = new EventEmitter();\r\n private _croppie: Croppie;\r\n private imgUrl: string;\r\n get imageUrl(): string {\r\n return this.imgUrl;\r\n }\r\n @Input() set imageUrl(url: string) {\r\n if (this.imgUrl === url) { return; }\r\n this.imgUrl = url;\r\n if (this._croppie) {\r\n this.bindToCroppie(this.imageUrl, this.points, this.defaultZoom);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._croppie = new Croppie(this.imageEdit.nativeElement, this.croppieOptions);\r\n this.bindToCroppie(this.imageUrl, this.points, this.defaultZoom);\r\n }\r\n\r\n private bindToCroppie(url: string, points: number[], zoom: number) {\r\n this._croppie.bind({ url, points, zoom });\r\n }\r\n\r\n newResult() {\r\n this._croppie.result(this.outputFormatOptions).then((res) => {\r\n this.result.emit(res);\r\n });\r\n }\r\n\r\n rotate(degrees: 90 | 180 | 270 | -90 | -180 | -270) {\r\n this._croppie.rotate(degrees);\r\n }\r\n\r\n get(): CropData {\r\n return this._croppie.get();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgxCroppieComponent } from './ngx-croppie.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [NgxCroppieComponent],\r\n exports: [\r\n NgxCroppieComponent\r\n ]\r\n})\r\nexport class NgxCroppieModule { }\r\n","
\r\n
\r\n \r\n
\r\n
相關功能
\r\n \r\n
\r\n
\r\n \r\n
\r\n
收存案件
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
快捷功能
\r\n \r\n
\r\n
\r\n
說明提示
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\n\r\n@Component({\r\n selector: 'lib-note-config-popup',\r\n templateUrl: './note-config-popup.component.html',\r\n styleUrls: ['./note-config-popup.component.scss']\r\n})\r\nexport class NoteConfigPopupComponent implements OnInit {\r\n\r\n inited: boolean = false;\r\n ref: any;\r\n noteConfig: any;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public service: AppService,\r\n ) { }\r\n\r\n ngOnInit(): void { }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n blockGuest(): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n }\r\n\r\n}\r\n","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NoteConfigPopupComponent } from './note-config-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [NoteConfigPopupComponent],\r\n imports: [\r\n FormsModule,\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [NoteConfigPopupComponent]\r\n})\r\nexport class NoteConfigPopupModule { }\r\n","export class NoteEvaluatePointItem {\r\n id: number;\r\n point: number;\r\n className: string;\r\n\r\n constructor(\r\n id: number,\r\n point: number,\r\n className: string\r\n ) {\r\n this.id = id;\r\n this.point = point;\r\n this.className = className;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { NoteEvaluatePointItem } from './note-evaluate-point-item';\r\n\r\n@Component({\r\n selector: 'app-note-evaluate-point-popup',\r\n templateUrl: './note-evaluate-point-popup.component.html',\r\n styleUrls: ['./note-evaluate-point-popup.component.scss']\r\n})\r\nexport class NoteEvaluatePointPopupComponent implements OnInit {\r\n\r\n evaluatePoint: number = 0;\r\n\r\n customPoint: NoteEvaluatePointItem = new NoteEvaluatePointItem(0, null, 'custom');\r\n pointItemList: NoteEvaluatePointItem[] = [\r\n new NoteEvaluatePointItem(3, 300, 'point300'),\r\n new NoteEvaluatePointItem(2, 200, 'point200'),\r\n new NoteEvaluatePointItem(1, 100, 'point100'),\r\n ];\r\n selectedPointItem: NoteEvaluatePointItem;\r\n\r\n pointLog: [] = [];\r\n get disableConfirmButton(): boolean {\r\n return this.selectedPointItem == null\r\n || this.selectedPointItem.point == null\r\n || this.selectedPointItem.point.toString() === ''\r\n || isNaN(this.selectedPointItem.point);\r\n }\r\n hasConfirmEvaluate: boolean = false;\r\n\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n // onSelectPoint: (point: number) => void;\r\n onConfirmPoint: (point: number) => void;\r\n\r\n ngOnInit() { }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n selectPoint(item: NoteEvaluatePointItem): void {\r\n this.selectedPointItem = item;\r\n console.log(this.selectedPointItem);\r\n\r\n\r\n }\r\n confirmPoint(): void {\r\n this.hasConfirmEvaluate = true;\r\n if (this.onConfirmPoint) {\r\n this.onConfirmPoint(this.selectedPointItem.point);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
評定分數
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n 上次評定:\r\n {{evaluatePoint}}\r\n \r\n
\r\n
\r\n
設定分數
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{item.point}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NoteEvaluatePointPopupComponent } from './note-evaluate-point-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [NoteEvaluatePointPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [NoteEvaluatePointPopupComponent]\r\n})\r\nexport class NoteEvaluatePointPopupModule { }\r\n","import { MessageType } from \"./message-type.enum\";\r\n\r\nexport class MessageItem {\r\n type: MessageType;\r\n text: string;\r\n add_time: number;\r\n keep_time: number = 10000;\r\n remove_time: number;\r\n\r\n constructor(type: MessageType, text: string, add_time: number) {\r\n this.type = type;\r\n this.text = text;\r\n this.add_time = add_time;\r\n this.remove_time = this.add_time + this.keep_time;\r\n }\r\n}\r\n","export enum MessageType {\r\n Normal = 0,\r\n Warning = 1,\r\n Error = 2,\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MessageItem } from './message-item';\r\nimport { MessageType } from './message-type.enum';\r\nimport { NotificationService } from './notification.service';\r\n\r\n@Component({\r\n selector: 'app-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss']\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n\r\n msgList: MessageItem[];\r\n showItemCount: number = 7;\r\n constructor(\r\n private notificationService: NotificationService\r\n ) {\r\n this.showItemCount = notificationService.maxShowItemCount;\r\n }\r\n\r\n ngOnInit() {\r\n this.msgList = this.notificationService.msgList;\r\n this.notificationService.msgList$.subscribe(l => {\r\n this.msgList = l.slice(Math.max(l.length - this.showItemCount, 0));\r\n });\r\n }\r\n\r\n convertMessageTypeToClassName(type: MessageType): string {\r\n return MessageType[type].toLowerCase();\r\n }\r\n getMessageTime(item: MessageItem): string {\r\n let date = new Date(item.add_time);\r\n return date.getHours()\r\n + ':' + date.getMinutes()\r\n + ':' + date.getSeconds()\r\n + '.' + date.getMilliseconds();\r\n }\r\n}\r\n","
\r\n
\r\n
{{getMessageTime(msg)}}
\r\n
{{msg.text}}
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NotificationComponent } from './notification.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [NotificationComponent],\r\n exports: [NotificationComponent]\r\n})\r\nexport class NotificationModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { MessageItem } from './message-item';\r\nimport { Subject } from 'rxjs';\r\nimport { MessageType } from './message-type.enum';\r\nimport { AppConfigService } from 'projects/desktop/src/app/app-config.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n msgList: MessageItem[] = [];\r\n msgList$: Subject = new Subject();\r\n\r\n maxShowItemCount: number = 15;\r\n\r\n enable: boolean;\r\n timer: any;\r\n\r\n constructor(\r\n private appcfg: AppConfigService,\r\n ) {\r\n // this.enable = appcfg.enableNotification;\r\n // 從 app.component.html 開\r\n this.enable = true;\r\n\r\n // if (this.enable) {\r\n // this.startTimer();\r\n // }\r\n }\r\n\r\n\r\n removeExpireMessage(): void {\r\n const sourceLength = this.msgList.length;\r\n if (sourceLength === 0) {\r\n return;\r\n }\r\n\r\n const currentTime = new Date().getTime();\r\n this.msgList = this.msgList.filter(m => m.remove_time > currentTime);\r\n if (this.msgList.length !== sourceLength) {\r\n this.msgList$.next(this.msgList);\r\n }\r\n }\r\n\r\n addMessage(type: MessageType, text: string): void {\r\n if (!this.enable) { return; }\r\n const msg = new MessageItem(type, text, new Date().getTime());\r\n this.msgList.push(msg);\r\n this.msgList$.next(this.msgList);\r\n\r\n setTimeout(() => {\r\n this.removeExpireMessage();\r\n }, (msg.remove_time - new Date().getTime()) + 100);\r\n }\r\n addNormal(text: string): void {\r\n this.addMessage(MessageType.Normal, text);\r\n }\r\n addWarning(text: string): void {\r\n this.addMessage(MessageType.Warning, text);\r\n }\r\n addError(text: string): void {\r\n this.addMessage(MessageType.Error, text);\r\n }\r\n}\r\n","export enum NotifyTypeId {\r\n NONE = 0,\r\n SendTeamInvite = 1,\r\n ReceiveTeamInvite = 2,\r\n Text = 3,\r\n TeamAnnounce = 4,\r\n TeamNewCase = 5,\r\n TeamCaseNewDiscuss = 6,\r\n TeamNotePublish = 7,\r\n TeamNoteAuthorDownload = 8,\r\n}\r\n","import { Component, OnInit, ViewChild, TemplateRef, Input, HostListener } from '@angular/core';\r\nimport { Notify } from './notify';\r\nimport { NotifyService } from './notify.service';\r\nimport { of, Subject, Observable, asapScheduler, race, asyncScheduler, from } from 'rxjs';\r\nimport { trigger, transition, state, style, animate, AnimationEvent } from '@angular/animations';\r\nimport { NotifyTypeId } from './notify-type-id.enum';\r\nimport { delay, concatMap, tap, switchMap, mergeAll } from 'rxjs/operators';\r\nimport { JudgmentService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment.service';\r\nimport { JudicialInterpretService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret.service';\r\nimport { IndictmentService } from '../indictment/indictment.service';\r\nimport { LoadingIconService } from '../loading-icon/loading-icon.service';\r\nimport { ActionName } from '../action-name';\r\nimport { MaterialHelper } from '../material-helper';\r\nimport { PutInNoteCheckPopupComponent } from '../put-in-note-check-popup/put-in-note-check-popup.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PutInNoteSuccessPopupComponent } from '../put-in-note-success-popup/put-in-note-success-popup.component';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\n\r\n@Component({\r\n selector: 'app-notify',\r\n templateUrl: './notify.component.html',\r\n styleUrls: ['./notify.component.scss'],\r\n animations: [\r\n trigger('notifyWindowStatus', [\r\n state('open', style({ bottom: '20px', left: '20px' })),\r\n state('close', style({ bottom: '-100px', left: '20px' })),\r\n transition('* => open', [animate('0.2s')]),\r\n transition('open => *', [animate('0.2s')]),\r\n ])\r\n ]\r\n})\r\nexport class NotifyComponent implements OnInit {\r\n @ViewChild('notifyText', { static: true }) notifyText: TemplateRef;\r\n @ViewChild('notifyReceiveTeamInvite', { static: true }) notifyReceiveTeamInvite: TemplateRef;\r\n @ViewChild('notifySendTeamInvite', { static: true }) notifySendTeamInvite: TemplateRef;\r\n @ViewChild('notifyTeamAnnounce', { static: true }) notifyTeamAnnounce: TemplateRef;\r\n @ViewChild('notifyTeamNewCase', { static: true }) notifyTeamNewCase: TemplateRef;\r\n @ViewChild('notifyTeamCaseNewDiscuss', { static: true }) notifyTeamCaseNewDiscuss: TemplateRef;\r\n @ViewChild('notifyTeamNotePublish', { static: true }) notifyTeamNotePublish: TemplateRef;\r\n @ViewChild('notifyTeamNoteAuthorDownload', { static: true }) notifyTeamNoteAuthorDownload: TemplateRef;\r\n\r\n @Input() enableMenu: boolean = false;\r\n @Input() enablePopup: boolean = false;\r\n\r\n\r\n enableNotify: boolean = true;\r\n showNotifyWindow: boolean = false;\r\n hasUnread: boolean = false;\r\n get unReadCount(): number { return this.notifyService.list.filter(v => !v.is_read).length; }\r\n get listNotify(): Notify[] { return this.notifyService.list; }\r\n newMessageCount: number = 0;\r\n get newMessageCountString(): string {\r\n return this.newMessageCount <= 0 ? ''\r\n : this.newMessageCount <= 99 ? this.newMessageCount.toString()\r\n : '99+';\r\n }\r\n windowShowRunning: boolean = false;\r\n isWindowAnimating: boolean = false;\r\n windowShow: boolean = false;\r\n windowOpenAnimationDone$: Subject = new Subject();\r\n windowCloseAnimationDone$: Subject = new Subject();\r\n runAgainTrigger$: Subject = new Subject();\r\n triggerCloseNotifyPopup$: Subject = new Subject();\r\n currentNotify: Notify;\r\n waitShowNotifyList: Notify[] = [];\r\n windowShowKeepTime: number = 5000;\r\n loading: boolean = false;\r\n isGuest: boolean = false;\r\n\r\n constructor(\r\n private notifyService: NotifyService,\r\n public judgmentService: JudgmentService,\r\n private indictmentService: IndictmentService,\r\n private judicialInterpretService: JudicialInterpretService,\r\n private loadingIconService: LoadingIconService,\r\n private matDialog: MatDialog,\r\n private service: AppService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.service.refreshLoginStatus().subscribe(() => {\r\n this.isGuest = this.service.IsGuest;\r\n if (this.service.IsGuest) {\r\n return;\r\n }\r\n\r\n let newNotifyId = '';\r\n const receiveNotify$ = this.notifyService.notifySubject\r\n .pipe(\r\n tap((notify_id: string) => { newNotifyId = notify_id; }),\r\n concatMap(() => this.updateNotifyListObserver()),\r\n tap((list: Notify[]) => {\r\n const newNotify = list.find(n => n.notify_id === newNotifyId);\r\n if (newNotify != null) {\r\n this.waitShowNotifyList.push(newNotify);\r\n }\r\n })\r\n );\r\n\r\n from([receiveNotify$, this.runAgainTrigger$])\r\n .pipe(mergeAll())\r\n // of(receiveNotify$, this.runAgainTrigger$)\r\n .pipe(\r\n switchMap(() => {\r\n if (this.windowShowRunning) {\r\n return from([]);\r\n }\r\n\r\n if (this.waitShowNotifyList.length > 0) {\r\n this.currentNotify = this.waitShowNotifyList.splice(0, 1)[0];\r\n this.waitShowNotifyList = [];\r\n console.log('set show notify ', this.currentNotify);\r\n\r\n return of(this.currentNotify);\r\n }\r\n\r\n return from([]);\r\n }),\r\n // 觸發開啟視窗\r\n tap(() => { this.windowShowRunning = true; }),\r\n tap(() => {\r\n console.log('show window');\r\n this.windowShow = true;\r\n }),\r\n // 等待視窗動畫跳出動畫結束\r\n // concatMap(() => interval(100)),\r\n tap(() => { console.log('wait show window anim '); }),\r\n concatMap(() => this.windowOpenAnimationDone$),\r\n // 視窗顯示等待\r\n tap(() => { console.log('wait window stay'); }),\r\n // delay(this.windowShowKeepTime),\r\n concatMap(() => race(of(1).pipe(delay(this.windowShowKeepTime)), this.triggerCloseNotifyPopup$)),\r\n // 觸發關閉視窗\r\n tap(() => {\r\n console.log('hide window');\r\n this.windowShow = false;\r\n }),\r\n concatMap(() => this.windowCloseAnimationDone$),\r\n // concatMap(() => merge(this.windowCloseAnimationDone$, this.triggerCloseNotifyPopup$)),\r\n tap(() => {\r\n console.log('reset window');\r\n this.currentNotify = null;\r\n this.windowShowRunning = false;\r\n\r\n if (this.waitShowNotifyList.length > 0) {\r\n this.runAgainTrigger$.next();\r\n }\r\n }),\r\n )\r\n .subscribe();\r\n\r\n\r\n this.notifyService.closeNotifyPopupTrigger$.subscribe(() => {\r\n this.triggerCloseNotifyPopup$.next(true);\r\n });\r\n\r\n this.updateNotifyListObserver().subscribe();\r\n });\r\n }\r\n getNotifyTemplate(notify: Notify): TemplateRef {\r\n if (notify.type === NotifyTypeId.Text) {\r\n return this.notifyText;\r\n } else if (notify.type === NotifyTypeId.ReceiveTeamInvite) {\r\n return this.notifyReceiveTeamInvite;\r\n } else if (notify.type === NotifyTypeId.SendTeamInvite) {\r\n return this.notifySendTeamInvite;\r\n } else if (notify.type === NotifyTypeId.TeamAnnounce) {\r\n return this.notifyTeamAnnounce;\r\n } else if (notify.type === NotifyTypeId.TeamNewCase) {\r\n return this.notifyTeamNewCase;\r\n } else if (notify.type === NotifyTypeId.TeamCaseNewDiscuss) {\r\n return this.notifyTeamCaseNewDiscuss;\r\n } else if (notify.type === NotifyTypeId.TeamNotePublish) {\r\n return this.notifyTeamNotePublish;\r\n } else if (notify.type === NotifyTypeId.TeamNoteAuthorDownload) {\r\n return this.notifyTeamNoteAuthorDownload;\r\n }\r\n }\r\n updateNotfiyList(): void {\r\n console.log('通知刷新開始');\r\n this.updateNotifyListObserver()\r\n .subscribe({\r\n complete: () => {\r\n console.log('通知刷新結束');\r\n }\r\n })\r\n }\r\n\r\n updateNotifyListObserver(): Observable {\r\n this.loading = true;\r\n return this.notifyService.pullNotifyList()\r\n .pipe(\r\n tap(() => {\r\n this.hasUnread = this.notifyService.list.some(n => !n.is_read);\r\n\r\n console.log(this.notifyService.list.filter(n => n.type == 8));\r\n this.loading = false;\r\n })\r\n );\r\n }\r\n toggleNotifyWindow(): void {\r\n this.showNotifyWindow = !this.showNotifyWindow;\r\n }\r\n\r\n\r\n // 通知系統功能\r\n markReadAllNotify(): void {\r\n if (!this.hasUnread) {\r\n return;\r\n }\r\n this.hasUnread = false;\r\n this.notifyService.list.forEach(n => n.is_read = true);\r\n this.notifyService.markAllNotifyRead().subscribe();\r\n }\r\n setNotifyReadClick($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'read-button')) {\r\n return;\r\n }\r\n if (notify.is_read) {\r\n return;\r\n }\r\n notify.is_read = true;\r\n this.hasUnread = this.notifyService.list.some(n => !n.is_read);\r\n this.notifyService.setNotifyRead(notify.notify_id, true).subscribe();\r\n }\r\n deleteNotify(notify: Notify): void {\r\n if (confirm('確定刪除此通知')) {\r\n this.notifyService.deleteNotify(notify.notify_id)\r\n .pipe(\r\n concatMap(() => this.updateNotifyListObserver())\r\n )\r\n .subscribe();\r\n }\r\n }\r\n toggleNotifyRead(notify: Notify): void {\r\n const is_read = !notify.is_read;\r\n notify.is_read = is_read;\r\n if (!is_read) {\r\n this.hasUnread = true;\r\n }\r\n this.notifyService.setNotifyRead(notify.notify_id, is_read).subscribe();\r\n }\r\n onWindowAnimationStart(): void {\r\n // 觸發視窗動畫顯示\r\n this.isWindowAnimating = true;\r\n }\r\n onWindowAnimationDone(): void {\r\n this.isWindowAnimating = false;\r\n // this.$windowAnimationDone.next(this.windowShow);\r\n if (this.windowShow) {\r\n this.windowOpenAnimationDone$.next(true);\r\n } else {\r\n this.windowCloseAnimationDone$.next(true);\r\n }\r\n }\r\n closeNotifyPopup(): void {\r\n this.notifyService.closeNotify().subscribe();\r\n this.triggerCloseNotifyPopup$.next(true);\r\n }\r\n\r\n deleteAllNotify(): void {\r\n if (confirm('是否刪除全部訊息?官方建議刪除提升效能')) {\r\n this.notifyService.deleteAllNotify(true).subscribe({\r\n complete: () => {\r\n this.notifyService.list = [];\r\n }\r\n });\r\n }\r\n }\r\n\r\n // * 通知用功能 *******************************************************\r\n confirmJoinTeam($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n // if (!this.checkCursorClickClassName($ev, 'confirm')) { return; }\r\n\r\n // this.showNotifyWindow = false;\r\n notify.data.is_reply = true;\r\n notify.data.reply_result = 'confirm';\r\n notify.is_read = true;\r\n // this.closeNotifyPopup();\r\n this.notifyService.confirmJoinTeam(notify)\r\n .pipe(\r\n concatMap(() => this.notifyService.setNotifyRead(notify.notify_id, true)),\r\n concatMap(() => this.updateNotifyListObserver())\r\n )\r\n .subscribe();\r\n }\r\n rejectJoinTeam($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n // if (!this.checkCursorClickClassName($ev, 'reject')) { return; }\r\n\r\n notify.data.is_reply = true;\r\n notify.data.reply_result = 'reject';\r\n notify.is_read = true;\r\n // this.closeNotifyPopup();\r\n this.notifyService.rejectJoinTeam(notify)\r\n .pipe(\r\n concatMap(() => this.notifyService.setNotifyRead(notify.notify_id, true)),\r\n concatMap(() => this.updateNotifyListObserver())\r\n )\r\n .subscribe();\r\n }\r\n openTeam($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n window.open(`/team/${notify.data.team_id}`);\r\n }\r\n openTeamIfAgree($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n if (notify.data.is_reply\r\n && notify.data.reply_result === 'confirm') {\r\n window.open(`/team/${notify.data.team_id}`);\r\n }\r\n }\r\n openTeamNewCase($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n let noteTitle = '';\r\n if (!noteTitle && notify.data.note_title != null) {\r\n noteTitle = notify.data.note_title;\r\n }\r\n if (!noteTitle && notify.data.team_note_title != null) {\r\n noteTitle = notify.data.team_note_title;\r\n }\r\n\r\n const query = [\r\n `tab=${notify.data.note_type}`,\r\n `search_type=note_title`,\r\n `search_keyword=${encodeURI(noteTitle)}`\r\n ].join('&');\r\n window.open(`/team/${notify.data.team_id}/shared_storage?${query}`);\r\n }\r\n openTeamCaseNewDiscuss($ev: MouseEvent, notify: Notify): void {\r\n if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n // notify.data.note_type;\r\n // notify.data.note_title;\r\n const query = [\r\n `tab=${notify.data.note_type}`,\r\n `search_type=note_title`,\r\n `search_keyword=${encodeURI(notify.data.note_title)}`,\r\n `note_action=open_note_discuss`,\r\n `note_id=${notify.data.note_id}`\r\n ].join('&');\r\n window.open(`/team/${notify.data.team_id}/shared_storage?${query}`);\r\n }\r\n authorDownload($ev: MouseEvent, notify: Notify, force: boolean = false): void {\r\n // if (this.checkCursorClickClassName($ev, 'ignore-click')) { return; }\r\n\r\n // 設定下載\r\n let downloadNoteObserver: (team_id: string, team_note_id: string, notify_id: string, force: boolean) => Observable = null;\r\n if (notify.data.note_type == 1) {\r\n downloadNoteObserver = (team_id: string, team_note_id: string, notify_id: string, force: boolean) =>\r\n this.judgmentService.downloadNoteFromTeam(team_id, team_note_id, notify_id, force);\r\n } else if (notify.data.note_type == 3) {\r\n downloadNoteObserver = (team_id: string, team_note_id: string, notify_id: string, force: boolean) =>\r\n this.judicialInterpretService.downloadNoteFromTeam(team_id, team_note_id, notify_id, force);\r\n } else if (notify.data.note_type == 4) {\r\n downloadNoteObserver = (team_id: string, team_note_id: string, notify_id: string, force: boolean) =>\r\n this.indictmentService.downloadNoteFromTeam(team_id, team_note_id, notify_id, force);\r\n }\r\n\r\n // 第一次非強制下載\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n downloadNoteObserver(notify.data.team_id, notify.data.team_note_id, notify.notify_id, false)\r\n .subscribe({\r\n next: (result: number) => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n // 複製成功\r\n if (result == 1) {\r\n // 顯示複製成功彈窗\r\n notify.data.is_open_downloaded = false;\r\n this.updateNotifyListObserver().subscribe();\r\n this.openCopySuccessPopup();\r\n }\r\n // 倉庫存在相同案件, 需要確認覆蓋\r\n else if (result == 2) {\r\n this.openConfirmOverwritePopup(() => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n downloadNoteObserver(notify.data.team_id, notify.data.team_note_id, notify.notify_id, true)\r\n .subscribe({\r\n next: (result2) => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n if (result2 == 1) {\r\n // 顯示複製成功彈窗\r\n notify.data.is_open_downloaded = false;\r\n this.updateNotifyListObserver().subscribe();\r\n this.openCopySuccessPopup();\r\n } else {\r\n alert('下載失敗!');\r\n }\r\n }\r\n });\r\n });\r\n\r\n }\r\n // 其他錯誤\r\n else {\r\n alert('下載失敗!');\r\n }\r\n }\r\n });\r\n }\r\n openCopySuccessPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteSuccessPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const c = dlRef.componentInstance;\r\n c.description = '已置入筆記至個人倉庫';\r\n }\r\n openConfirmOverwritePopup(onConfirm: () => void): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteCheckPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const c = dlRef.componentInstance;\r\n c.title = '確認下載';\r\n c.description = '確認下載並覆蓋原本筆記?';\r\n c.rootClass = 'author-download'\r\n c.onConfirm = () => {\r\n onConfirm();\r\n c.closePopup();\r\n };\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) emptyClick($event): void {\r\n if (this.showNotifyWindow\r\n && !this.checkCursorClickClassName($event, 'notify')) {\r\n this.showNotifyWindow = false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
0\">{{unReadCount}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
通知
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
刷新通知
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0}\" (click)=\"deleteAllNotify()\">\r\n
\r\n
刪除全部通知
\r\n
\r\n
標示全部已讀
\r\n
\r\n
0\">\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
沒有通知
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
新通知
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{notify.timeString}}
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
notifyText
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{notify.data.sender_name}} 邀請您加入團隊
\r\n
\r\n
「{{notify.data.team_name}}」
\r\n
\r\n
\r\n
同意
\r\n
拒絕
\r\n
\r\n
\r\n \r\n
\r\n
您已加入
\r\n
「{{notify.data.team_name}}」
\r\n
\r\n \r\n
\r\n
您拒絕了加入
\r\n
「{{notify.data.team_name}}」
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
您邀請 {{notify.data.receiver_name}} 加入 {{notify.data.team_name}}
\r\n
\r\n \r\n
\r\n
\r\n {{notify.data.receiver_name}}\r\n 已加入\r\n
\r\n
\r\n 「{{notify.data.team_name}}」\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{notify.data.receiver_name}}\r\n 拒絕了加入\r\n
\r\n
\r\n 「{{notify.data.team_name}}」\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{notify.data.announcer_member_name}}\r\n 在團隊發佈了最新公告內容\r\n
\r\n
\r\n 「{{notify.data.team_name}}」\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{notify.data.writer_member_name}}\r\n 在 {{notify.data.team_name}} 中置入新的筆記\r\n
\r\n
\r\n 「{{notify.data.note_title}}」\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{notify.data.writer_member_name}}\r\n 在你的筆記上留言\r\n
\r\n
\r\n {{notify.data.writer_member_name}}\r\n 回覆了你的留言\r\n
\r\n
\r\n 「{{notify.data.note_discuss_text}}」\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{notify.data.publisher_member_name}}\r\n 對於你的筆記進行了評定\r\n
\r\n
\r\n 「待修正」\r\n
\r\n
\r\n 「已完成」\r\n
\r\n
\r\n 獲得 {{notify.data.point}} 積分\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{notify.data.editor_name}}\r\n 對於你的筆記進行了編輯\r\n
\r\n
\r\n {{notify.data.team_note_title}}\r\n
\r\n
\r\n
確認下載
\r\n
\r\n
\r\n 案件已從團隊下載\r\n
\r\n
\r\n \r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NotifyComponent } from './notify.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [NotifyComponent],\r\n imports: [\r\n CommonModule,\r\n // BrowserAnimationsModule\r\n ],\r\n exports: [NotifyComponent]\r\n})\r\nexport class NotifyModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, Observable, of } from 'rxjs';\r\nimport { Notify } from './notify';\r\nimport { NotifyWindow } from './notify-window';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\nimport { MessageType } from './message-type';\r\nimport { NotifyTypeId } from './notify-type-id.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotifyService {\r\n\r\n notifySubject: Subject = new Subject();\r\n\r\n list: Notify[] = [];\r\n newNotifyCount: number = 0;\r\n closeNotifyPopupTrigger$: Subject = new Subject();\r\n\r\n\r\n constructor(\r\n private service: AppService,\r\n ) { }\r\n\r\n receiveNewNotify(notify_id: string): void {\r\n this.notifySubject.next(notify_id);\r\n }\r\n\r\n getNotifyList(): Observable {\r\n return this.service.get('user/notify_list')\r\n .pipe(\r\n map((ns: Notify[]) => {\r\n return ns.map(n => Serializable.extend(new Notify(), n));\r\n })\r\n );\r\n }\r\n pullNotifyList(): Observable {\r\n return this.service.isLogin$()\r\n .pipe(\r\n switchMap((isLogin: boolean) => {\r\n if (isLogin) {\r\n return this.getNotifyList()\r\n .pipe(\r\n tap(ns => {\r\n this.list = ns.filter((n, i) => {\r\n if (n.type == NotifyTypeId.TeamCaseNewDiscuss) {\r\n if (n.data == null) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n // console.log('update notify list', this.list);\r\n })\r\n );\r\n } else {\r\n return of([]);\r\n }\r\n })\r\n );\r\n }\r\n markAllNotifyRead(): Observable {\r\n return this.service.get(`user/notify_read_all`);\r\n }\r\n deleteAllNotify(isConfirm: boolean): Observable {\r\n return this.service.post(`user/notify_delete_all`, { isConfirm: isConfirm ? 1 : 0 });\r\n }\r\n setNotifyRead(notify_id: string, is_read: boolean): Observable {\r\n return this.service.get(`user/notify_read?id=${notify_id}&read=${is_read ? 1 : 0}`);\r\n }\r\n deleteNotify(notify_id: string): Observable {\r\n return this.service.post(`user/notify_delete`, { notify_id: notify_id });\r\n }\r\n closeNotify(): Observable {\r\n return this.service.get(`user/notify_close`);\r\n }\r\n // * 所有通知會用到的API ********************************************************\r\n confirmJoinTeam(notify: Notify): Observable {\r\n const notifyData: MessageType.ReceiveTeamInvite = notify.data;\r\n return this.service.post(`teamapi/${notifyData.team_id}/add_member_confirm_invite`, { invite_id: notifyData.invite_id });\r\n }\r\n rejectJoinTeam(notify: Notify): Observable {\r\n const notifyData: MessageType.ReceiveTeamInvite = notify.data;\r\n return this.service.post(`teamapi/${notifyData.team_id}/add_member_reject_invite`, { invite_id: notifyData.invite_id });\r\n }\r\n}\r\n","import { TemplateRef } from '@angular/core';\r\nimport { NotifyTypeId } from './notify-type-id.enum';\r\nimport { AppCommonStatic } from 'projects/desktop/src/app/app-common-static';\r\n\r\nexport class Notify {\r\n id: number;\r\n notify_id: string;\r\n member_id: string;\r\n is_read: boolean;\r\n time: Date | string;\r\n type: NotifyTypeId;\r\n data: any;\r\n\r\n get timeString(): string {\r\n if (this.time) {\r\n return AppCommonStatic.convertTimeTickToPastTimeText3(new Date(this.time).getTime());\r\n }\r\n return '';\r\n }\r\n\r\n template: TemplateRef;\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-number-inputer',\r\n templateUrl: './number-inputer.component.html',\r\n styleUrls: ['./number-inputer.component.scss']\r\n})\r\nexport class NumberInputerComponent implements OnInit {\r\n\r\n @ViewChild('inputElement', { static: true }) inputElement: ElementRef;\r\n\r\n @Input() min: number;\r\n @Input() max: number;\r\n @Input() initNumber: number;\r\n @Output() update = new EventEmitter();\r\n hasSetMin: boolean = false;\r\n hasSetMax: boolean = false;\r\n // currentNumberText: string;\r\n inputNumberString: string = '';\r\n currentNumber: number;\r\n\r\n limitNumberKey: any[] = [\r\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 0,\r\n 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight',\r\n 'Backspace', 'Delete', 'Tab',\r\n 'Home', 'End'\r\n ];\r\n\r\n onNumberChange: () => void;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.min == null) {\r\n this.min = 0;\r\n } else {\r\n this.hasSetMin = true;\r\n }\r\n if (this.max == null) {\r\n this.max = Number.MAX_VALUE;\r\n } else {\r\n this.hasSetMax = true;\r\n }\r\n if (this.initNumber != null) {\r\n this.inputNumberString = this.initNumber.toString();\r\n this.textChange();\r\n }\r\n }\r\n selectAll(ev: MouseEvent): void {\r\n (ev.target as any).select();\r\n }\r\n add(): void {\r\n this.currentNumber = (this.currentNumber || 0) + 1;\r\n if (this.hasSetMax && this.currentNumber > this.max) {\r\n this.currentNumber = this.max;\r\n }\r\n this.updateNumberText();\r\n }\r\n sub(): void {\r\n this.currentNumber = (this.currentNumber || 0) - 1;\r\n if (this.hasSetMin && this.currentNumber < this.min) {\r\n this.currentNumber = this.min;\r\n }\r\n this.updateNumberText();\r\n }\r\n textChange(): void {\r\n console.log(this.inputNumberString, this.min, this.max);\r\n if (this.inputNumberString != null) {\r\n this.currentNumber = parseInt(this.inputNumberString, 10);\r\n this.updateNumberText();\r\n } else {\r\n this.currentNumber = null;\r\n }\r\n }\r\n wheel(ev: any): void {\r\n console.log(ev);\r\n\r\n }\r\n updateNumber(num: number): void {\r\n this.currentNumber = num;\r\n this.updateNumberText();\r\n }\r\n updateNumberText(): void {\r\n this.checkLimit();\r\n this.updateResultNumberText();\r\n }\r\n checkLimit(): void {\r\n if (this.currentNumber != null) {\r\n if (this.currentNumber > this.max) {\r\n this.currentNumber = this.max;\r\n } else if (this.currentNumber < this.min) {\r\n this.currentNumber = this.min;\r\n }\r\n }\r\n }\r\n updateResultNumberText(): void {\r\n this.inputNumberString = this.currentNumber ? this.currentNumber.toString() : '';\r\n\r\n this.update.emit(this.currentNumber);\r\n if (this.onNumberChange != null) {\r\n this.onNumberChange();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NumberInputerComponent } from './number-inputer.component';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { InputCharLimitDirective } from 'projects/lwlib/src/input-char-limit.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n // ReactiveFormsModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n InputCharLimitDirective,\r\n NumberInputerComponent,\r\n ],\r\n exports: [\r\n NumberInputerComponent\r\n ]\r\n})\r\nexport class NumberInputerModule { }\r\n","export class PageChangeConfig {\r\n /** 換頁器get這值, 直接從config這裡改 */\r\n perPageAmount: number = 20;\r\n /** 換頁器get這值, 直接從config這裡改 */\r\n enableBack: boolean = false;\r\n /** 換頁器get這值, 直接從config這裡改 */\r\n enableRefresh: boolean = true;\r\n /** 換頁器get這值, 直接從config這裡改 */\r\n enableFirst: boolean = true;\r\n /** 換頁器get這值, 直接從config這裡改 */\r\n enablePrev: boolean = true;\r\n /** 換頁器get這值, 直接從config這裡改 */\r\n enableNext: boolean = true;\r\n /** 換頁器get這值, 直接從config這裡改 */\r\n enableLast: boolean = true;\r\n /** 換頁器get這值, 直接從config這裡改 */\r\n disableAll: boolean = false;\r\n // 頁碼變換,頁碼從1開始\r\n onPageChange: (page: number) => void;\r\n onBack: () => void;\r\n onRefresh: () => void;\r\n countHandler: (count: number) => string;\r\n /** 對應換頁器卡在ngIf底下不存在時,下次顯示要做數量變化的設定\r\n * 這值不是空的話,會設定成這值\r\n */\r\n initCount: number;\r\n initPageNumber: number;\r\n\r\n enableHoverEffect: boolean;\r\n enableTips: boolean = true;\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { PageChangeConfig } from './page-change-config';\r\n\r\n@Component({\r\n selector: 'app-page-change2',\r\n templateUrl: './page-change2.component.html',\r\n styleUrls: ['./page-change2.component.scss']\r\n})\r\nexport class PageChange2Component implements OnInit {\r\n\r\n backText: string = '返回';\r\n refreshtext: string = '重新整理';\r\n\r\n @Input('config') config: PageChangeConfig = new PageChangeConfig();\r\n\r\n get perPageAmount(): number { return this.config.perPageAmount; }\r\n get enableBack(): boolean { return this.config.enableBack; }\r\n get enableRefresh(): boolean { return this.config.enableRefresh; }\r\n get enableFirst(): boolean { return this.config.enableFirst; }\r\n get enablePrev(): boolean { return this.config.enablePrev; }\r\n get enableNext(): boolean { return this.config.enableNext; }\r\n get enableLast(): boolean { return this.config.enableLast; }\r\n get disableAll(): boolean { return this.config.disableAll; }\r\n get enableTips(): boolean { return this.config.enableTips; }\r\n set enableTips(value) { this.config.enableTips = value; }\r\n\r\n tipDirection: string = '';\r\n // enableTips: boolean = true;\r\n enableHoverEffect: boolean = true;\r\n\r\n // button show\r\n count: number = 0;\r\n get displayCount(): string {\r\n if (this.config.countHandler != null) {\r\n return this.config.countHandler(this.count);\r\n } else {\r\n return this.count.toLocaleString();\r\n }\r\n }\r\n prevPageIndex: number = 1;\r\n // 頁碼,從1開始 (pageNumber)\r\n pageIndex: number = 1;\r\n\r\n get lastPageIndex(): number { return Math.ceil(this.count / this.perPageAmount); }\r\n get showFirst(): boolean { return this.count > this.perPageAmount && this.pageIndex > 1; }\r\n get showPrev(): boolean { return this.count > this.perPageAmount && this.pageIndex > 1; }\r\n get showNext(): boolean { return this.count > this.perPageAmount && this.pageIndex < this.lastPageIndex; }\r\n get showLast(): boolean { return this.count > this.perPageAmount && this.pageIndex < this.lastPageIndex; }\r\n\r\n\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n console.log(this.config);\r\n if (this.config != null) {\r\n if (this.config.initCount != null) {\r\n this.count = this.config.initCount;\r\n }\r\n if (this.config.initPageNumber != null) {\r\n this.pageIndex = this.config.initPageNumber;\r\n }\r\n if (this.config.enableHoverEffect != null) {\r\n this.enableHoverEffect = this.config.enableHoverEffect;\r\n }\r\n }\r\n }\r\n\r\n onFirst(): void {\r\n this.gotoPage(1);\r\n }\r\n onPrev(): void {\r\n let pi = this.pageIndex - 1;\r\n if (pi < 1) {\r\n pi = 1;\r\n }\r\n this.gotoPage(pi);\r\n }\r\n onNext(): void {\r\n let pi = this.pageIndex + 1;\r\n if (pi > this.lastPageIndex) {\r\n pi = this.lastPageIndex;\r\n }\r\n this.gotoPage(pi);\r\n }\r\n onLast(): void {\r\n this.gotoPage(this.lastPageIndex);\r\n }\r\n\r\n gotoPage(pageIndex: number): void {\r\n this.prevPageIndex = this.pageIndex;\r\n this.pageIndex = pageIndex;\r\n if (this.config.onPageChange != null) {\r\n this.config.onPageChange(pageIndex);\r\n }\r\n }\r\n onRefresh(): void {\r\n if (this.config.onRefresh != null) {\r\n this.config.onRefresh();\r\n }\r\n }\r\n onBack(): void {\r\n if (this.config.onBack != null) {\r\n this.config.onBack();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
{{backText}}
\r\n
\r\n
\r\n
\r\n
{{refreshtext}}
\r\n
\r\n
\r\n \r\n {{displayCount}}\r\n 筆,正在第\r\n {{pageIndex.toLocaleString()}}\r\n \r\n
\r\n
\r\n
\r\n
前一頁
\r\n
\r\n
\r\n
\r\n
下一頁
\r\n
\r\n
\r\n
\r\n
最末頁
\r\n
\r\n
\r\n
\r\n
首頁
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PageChange2Component } from './page-change2.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PageChange2Component],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [PageChange2Component]\r\n})\r\nexport class PageChange2Module { }\r\n","import { Component, OnInit, EventEmitter, Output, Input } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-page-change',\r\n templateUrl: './page-change.component.html',\r\n styleUrls: ['./page-change.component.scss']\r\n})\r\nexport class PageChangeComponent implements OnInit {\r\n @Input('enableRefresh') enableRefresh: boolean = true;\r\n @Input('enableBack') enableBack: boolean = false;\r\n @Input('tipBack') tipBack: string = '返回';\r\n @Input('defaultDisableAll') forceDisableAllPageChangeButton: boolean = false;\r\n @Input('initPageNumber') initPageNumber: number;\r\n @Input('initTotalCount') initTotalCount: number;\r\n\r\n @Output() back: EventEmitter = new EventEmitter();\r\n @Output() refresh: EventEmitter = new EventEmitter();\r\n @Output() pageChange: EventEmitter = new EventEmitter();\r\n\r\n displayTotalCount$: Subject = new Subject();\r\n // 給因為數量改變,又不能觸發更新事件用\r\n currentIndex$: Subject = new Subject();\r\n // 給點擊換頁器按鈕用\r\n clickGoToIndex$: Subject = new Subject();\r\n\r\n totalCount: number = 0;\r\n totalCount$: Subject = new Subject();\r\n perPageAmount: number = 20;\r\n currentIndex: number = 1;\r\n lastIndex: number = 1;\r\n displayTotalCount: number = 0;\r\n\r\n isFirst: boolean = false;\r\n isLast: boolean = false;\r\n hasPrev: boolean = false;\r\n hasNext: boolean = false;\r\n\r\n constructor() {\r\n // console.log('page constructor');\r\n this.totalCount$.subscribe(n => {\r\n // console.log('update page changer total count,', n);\r\n this.totalCount = n;\r\n this.lastIndex = Math.ceil(n / this.perPageAmount);\r\n this.updateEnableButtons();\r\n });\r\n this.displayTotalCount$.subscribe(r => {\r\n this.displayTotalCount = r;\r\n });\r\n this.currentIndex$.subscribe(n => {\r\n this.currentIndex = n;\r\n this.updateEnableButtons();\r\n });\r\n this.clickGoToIndex$.subscribe(n => {\r\n this.currentIndex = n;\r\n this.updateEnableButtons();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (this.initPageNumber != null) {\r\n this.currentIndex = this.initPageNumber;\r\n }\r\n if (this.initTotalCount != null) {\r\n this.update(this.initTotalCount, this.initTotalCount);\r\n }\r\n }\r\n\r\n updateEnableButtons(): void {\r\n this.isFirst = this.totalCount === 0 || (this.currentIndex === 1);\r\n this.isLast = this.totalCount === 0 || (this.currentIndex === this.lastIndex);\r\n this.hasPrev = this.totalCount > 0 && (this.currentIndex > 1);\r\n this.hasNext = this.totalCount > 0 && (this.currentIndex < this.lastIndex);\r\n }\r\n\r\n update(displayTotalCount: number, totalCount: number, perPageAmount: number = 20): void {\r\n this.perPageAmount = perPageAmount == null ? 20 : perPageAmount;\r\n this.totalCount = totalCount;\r\n this.displayTotalCount$.next(displayTotalCount);\r\n this.totalCount$.next(totalCount);\r\n }\r\n\r\n /** */\r\n clickRefresh(): void {\r\n this.refresh.emit(null);\r\n }\r\n /** */\r\n clickBack(): void {\r\n this.back.emit(null);\r\n }\r\n\r\n\r\n first(): void {\r\n this.clickGoToPage(1);\r\n }\r\n prev(): void {\r\n if (this.currentIndex - 1 <= 0) {\r\n return;\r\n }\r\n\r\n this.clickGoToPage(this.currentIndex - 1);\r\n }\r\n next(): void {\r\n if (this.currentIndex + 1 > this.lastIndex) {\r\n return;\r\n }\r\n this.clickGoToPage(this.currentIndex + 1);\r\n }\r\n last(): void {\r\n this.clickGoToPage(this.lastIndex);\r\n }\r\n /** 給點擊換頁器按鈕用 */\r\n clickGoToPage(index: number): void {\r\n this.pageChange.emit(index);\r\n this.clickGoToIndex$.next(index);\r\n }\r\n\r\n\r\n /** 給因為數量改變,又不能觸發更新事件用 */\r\n goToPageSlient(index: number): void {\r\n this.currentIndex$.next(index);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
{{tipBack}}
\r\n
\r\n
\r\n
\r\n
重新整理
\r\n
\r\n
\r\n \r\n {{displayTotalCount.toLocaleString()}}\r\n 筆,正在第\r\n {{currentIndex.toLocaleString()}}\r\n \r\n
\r\n \r\n
\r\n
\r\n
前一頁
\r\n
\r\n \r\n
\r\n
\r\n
下一頁
\r\n
\r\n \r\n
\r\n
\r\n
最末頁
\r\n
\r\n \r\n
\r\n
\r\n
首頁
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PageChangeComponent } from './page-change.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n PageChangeComponent\r\n ],\r\n exports: [\r\n PageChangeComponent\r\n ]\r\n})\r\nexport class PageChangeModule { }\r\n","export const PageName = {\r\n 0: '登入',\r\n 1: '登出',\r\n 2: '送出註冊',\r\n 3: '個人倉庫-裁判',\r\n 4: '個人倉庫-判解',\r\n 5: '個人倉庫-法規',\r\n 6: '檢索條件-裁判',\r\n 7: '檢索條件-判解',\r\n 8: '檢索條件-法規',\r\n 9: '檢索結果-裁判',\r\n 10: '檢索結果-判解',\r\n 11: '檢索結果-法規',\r\n 12: '全面檢索',\r\n 13: '裁判筆記',\r\n 14: '判解筆記',\r\n 15: '法規筆記',\r\n 16: '分享的筆記-裁判',\r\n 17: '分享的筆記-判解',\r\n 18: '分享的筆記-法規',\r\n 19: '推薦好友',\r\n 20: '等待審核',\r\n 21: '後台管理',\r\n 22: '分享',\r\n 23: '資料管理',\r\n 24: '阻擋裝置頁面',\r\n 25: '起訴書筆記',\r\n 26: '分享的筆記-起訴書',\r\n 27: '團隊公告',\r\n 28: '團隊邀請成員',\r\n 29: '團隊成員',\r\n 30: '團隊倉庫',\r\n 31: '建立團隊',\r\n 32: '團隊筆記-裁判',\r\n 33: '團隊筆記-判解',\r\n 34: '團隊筆記-起訴書',\r\n 35: '新聞首頁',\r\n 36: '我的團隊',\r\n 37: '最愛法規',\r\n 38: '團隊倉庫-裁判',\r\n 39: '團隊倉庫-判解',\r\n};","export class ChangePasswordRequest {\r\n key: string;\r\n code: string;\r\n password: string;\r\n}\r\n","import { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { Component, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { ChangePasswordKey } from './change-password-key';\r\nimport { ChangePasswordRequest } from './change-password-request';\r\n\r\n@Component({\r\n selector: 'app-password-change-popup',\r\n templateUrl: './password-change-popup.component.html',\r\n styleUrls: ['./password-change-popup.component.scss']\r\n})\r\nexport class PasswordChangePopupComponent extends BasePopup implements OnInit, OnDestroy {\r\n /** key,code,password */\r\n @Output() confirm: EventEmitter = new EventEmitter();\r\n\r\n key: ChangePasswordKey;\r\n\r\n showPasswordInput1: boolean = false;\r\n showPasswordInput2: boolean = false;\r\n code: string = '';\r\n inputPassword1: string = '';\r\n inputPassword2: string = '';\r\n codeError: string = ''; // 驗證代碼錯誤\r\n password1Error: string = ''; // 密碼少於6位數\r\n password2Error: string = ''; // 密碼不相同\r\n\r\n codePass: boolean = false;\r\n password1Pass: boolean = false;\r\n password2Pass: boolean = false;\r\n\r\n\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n ) { super(); }\r\n\r\n ngOnInit() {\r\n }\r\n ngOnDestroy(): void {\r\n\r\n }\r\n initPopup(key: ChangePasswordKey): void {\r\n this.key = key;\r\n }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n\r\n inputCheckCode(): void {\r\n this.codeError = '';\r\n }\r\n inputCheckPassword1(): void {\r\n this.password1Error = '';\r\n }\r\n inputCheckPassword2(): void {\r\n this.password2Error = '';\r\n }\r\n\r\n checkCode(): void {\r\n // console.log('checkCode');\r\n this.codePass = false;\r\n\r\n if (this.code.length === 0) {\r\n // this.inputError1 = '驗證代碼不能為空';\r\n return;\r\n }\r\n\r\n this.codePass = true;\r\n return;\r\n // this.inputError1 = '驗證代碼錯誤';\r\n }\r\n checkPassword1(): void {\r\n this.password1Pass = false;\r\n // console.log('checkPassword1', this.inputPassword1);\r\n if (this.inputPassword1.length === 0) {\r\n return;\r\n }\r\n if (this.inputPassword1.length < 6) {\r\n this.password1Error = '密碼少於6位數';\r\n return;\r\n }\r\n this.password1Pass = true;\r\n\r\n if (this.inputPassword2) {\r\n this.password2Error = '';\r\n this.checkPassword2();\r\n }\r\n }\r\n checkPassword2(): void {\r\n this.password2Pass = false;\r\n // console.log('checkPassword2', this.inputPassword2);\r\n if (this.inputPassword2.length === 0) {\r\n return;\r\n }\r\n if (this.inputPassword1 !== this.inputPassword2) {\r\n this.password2Error = '密碼不相同';\r\n return;\r\n }\r\n this.password2Pass = true;\r\n }\r\n\r\n disableConfirmButton(): boolean {\r\n return !this.codePass || !this.password1Pass || !this.password2Pass;\r\n }\r\n\r\n confirmChange(): void {\r\n const request: ChangePasswordRequest = new ChangePasswordRequest();\r\n request.key = this.key.key;\r\n request.code = this.code;\r\n request.password = this.inputPassword1;\r\n this.confirm.emit(request);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n
密碼重設
\r\n
\r\n \r\n
{{codeError}}
\r\n
\r\n
\r\n \r\n
\r\n
{{password1Error}}
\r\n
\r\n
\r\n \r\n
\r\n
{{password2Error}}
\r\n
\r\n
\r\n
\r\n 確認\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { PasswordChangePopupComponent } from './password-change-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { ValidateOnBlurDirective } from 'projects/lwlib/src/validate-on-blur/validate-on-blur.directive';\r\nimport { ValidateOnBlurModule } from 'projects/lwlib/src/validate-on-blur/validate-on-blur.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [PasswordChangePopupComponent],\r\n imports: [\r\n CommonModule,\r\n // MaskFullScreenModule,\r\n FormsModule,\r\n ValidateOnBlurModule\r\n ],\r\n exports: [PasswordChangePopupComponent]\r\n})\r\nexport class PasswordChangePopupModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MaterialHelper } from '../material-helper';\r\n\r\n@Component({\r\n selector: 'lib-pay-info-over-save-limit-popup',\r\n templateUrl: './pay-info-over-save-limit-popup.component.html',\r\n styleUrls: ['./pay-info-over-save-limit-popup.component.scss']\r\n})\r\nexport class PayInfoOverSaveLimitPopupComponent implements OnInit {\r\n\r\n enableNoteDisplay: boolean = false;\r\n enableSummaryDisplay: boolean = false;\r\n device: 'desktop' | 'mobile' = 'desktop';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n static open(\r\n matDialog: MatDialog,\r\n type: 'note' | 'summary',\r\n device: 'desktop' | 'mobile' = 'desktop'\r\n ): MatDialogRef {\r\n let dlRef = null;\r\n if (device == 'desktop') {\r\n dlRef = MaterialHelper.openDialog(() => matDialog.open(\r\n PayInfoOverSaveLimitPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '550px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n disableClose: false,\r\n }\r\n ));\r\n } else if (device == 'mobile') {\r\n dlRef = MaterialHelper.openDialog(() => matDialog.open(\r\n PayInfoOverSaveLimitPopupComponent,\r\n {\r\n panelClass: ['overflow-view'],\r\n width: '85vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n disableClose: false,\r\n }\r\n ));\r\n }\r\n\r\n const component = dlRef.componentInstance;\r\n if (type == 'note') {\r\n component.enableNoteDisplay = true;\r\n } else if (type == 'summary') {\r\n component.enableSummaryDisplay = true;\r\n }\r\n component.device = device;\r\n\r\n return dlRef;\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
案件存量已滿
\r\n
您的倉庫儲存容量已達上限,為提供更好的服務功能,請支持 升級帳戶(了解方案) 擴充或取得無限儲存容量空間。
\r\n
\r\n
\r\n
\r\n
\r\n
建立專業存摺
\r\n
打造鋼鐵履歷
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
摘要貼紙不足
\r\n
您的摘要使用數量已達上限,為提供更好的服務功能,請支持 升級帳戶(了解方案) 增加或取得無限摘要貼紙。
\r\n
\r\n
\r\n
\r\n
\r\n
專業筆記訓練
\r\n
高效記憶覆蓋
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
案件存量已滿
\r\n
\r\n
倉庫儲存容量已達上限
\r\n
為提供更好的服務功能
\r\n
請支持付費來升級帳戶
\r\n
解除儲存容量空間限制
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
摘要貼紙不足
\r\n
您的摘要使用數量已達上限,為提供更好的服務功能,請支持 升級帳戶(了解方案) 增加或取得無限摘要貼紙。
\r\n \r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PayInfoOverSaveLimitPopupComponent } from './pay-info-over-save-limit-popup.component';\r\nimport { FramePopupHeadModule } from 'projects/mobile/src/app/common/frame-popup-head/frame-popup-head.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PayInfoOverSaveLimitPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupHeadModule\r\n ],\r\n exports: [PayInfoOverSaveLimitPopupComponent]\r\n})\r\nexport class PayInfoOverSaveLimitPopupModule { }\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
體驗時間到期
\r\n
您持續使用系統已達一段時間,為提供更好的服務功能,請支持 升級帳戶(了解方案) 解除使用時間限制。如果您尚有許多功能沒有使用體驗,歡迎與我們聯絡申請延長時間!
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
成功的法律人
\r\n
必備的資料庫
\r\n
最強增值工具
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
使用時間已達上限
\r\n
您持續使用系統已達一段時間,為提供更好的服務功能,請支持 升級帳戶(了解方案) 解除使用時間限制。如果您尚有許多功能沒有使用體驗,歡迎與我們聯絡申請延長時間!
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
成功的法律人
\r\n
必備的資料庫
\r\n
最強增值工具
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
授權已經到期
\r\n
您的系統使用授權已經到期了,為提供更好的服務功能,請支持 升級帳戶(續約方案) 解除使用時間限制。如果您尚有許多功能沒有使用體驗,歡迎與我們聯絡申請延長時間!
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
成功的法律人
\r\n
必備的資料庫
\r\n
最強增值工具
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { Guid } from '../guid';\r\n\r\n@Component({\r\n selector: 'lib-pay-info-over-time-limit-popup',\r\n templateUrl: './pay-info-over-time-limit-popup.component.html',\r\n styleUrls: ['./pay-info-over-time-limit-popup.component.scss']\r\n})\r\nexport class PayInfoOverTimeLimitPopupComponent implements OnInit {\r\n\r\n dynId: string = '1234567890';\r\n // 免費體驗到期\r\n enableFreeTimeExpire: boolean = false;\r\n // 方案到期\r\n enablePlanTimeExpire: boolean = false;\r\n // 方案未到期,但超出使用時間\r\n enableInPlanOver: boolean = false;\r\n\r\n // 免費體驗到期\r\n enableMobileFreeTimeExpire: boolean = false;\r\n // 方案到期\r\n enableMobilePlanTimeExpire: boolean = false;\r\n // 方案未到期,但超出使用時間\r\n enableMobileInPlanOver: boolean = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PayInfoOverTimeLimitPopupComponent } from './pay-info-over-time-limit-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PayInfoOverTimeLimitPopupComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [PayInfoOverTimeLimitPopupComponent]\r\n})\r\nexport class PayInfoOverTimeLimitPopupModule { }\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { RootManagementService } from 'projects/desktop/src/app/root/root-management/root-management.service';\r\n\r\n@Component({\r\n selector: 'app-pay-tip-config-global-popup',\r\n templateUrl: './pay-tip-config-global-popup.component.html',\r\n styleUrls: ['./pay-tip-config-global-popup.component.scss']\r\n})\r\nexport class PayTipConfigGlobalPopupComponent extends BasePopup implements OnInit {\r\n\r\n limit_time: number;\r\n block_time: number;\r\n buff_time: number;\r\n paid_buff_time: number;\r\n callback: () => void;\r\n\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n private rootManagementService: RootManagementService,\r\n ) { super(); }\r\n\r\n ngOnInit() { }\r\n initPopup(\r\n limit_time: number\r\n , block_time: number\r\n , buff_time: number\r\n , paid_buff_time: number\r\n , callback: () => void\r\n ): void {\r\n this.limit_time = limit_time;\r\n this.block_time = block_time;\r\n this.buff_time = buff_time;\r\n this.paid_buff_time = paid_buff_time;\r\n this.callback = callback;\r\n }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n clickConfirm(): void {\r\n // this.rootManagementService.updatePayTimeGlobal({\r\n // free_time_min: this.limit_time,\r\n // block_time_min: this.block_time,\r\n // buff_time_min: this.buff_time,\r\n // paid_buff_time_min: this.paid_buff_time,\r\n // }).subscribe(() => {\r\n // this.rootManagementService.getAndUpdatePayTipPopupTimeGlobal().subscribe();\r\n // this.callback();\r\n // });\r\n this.closePopup();\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
預設限制時間
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
限制時間
\r\n \r\n
分鐘
\r\n
\r\n
\r\n
阻擋時間
\r\n \r\n
分鐘
\r\n
\r\n
\r\n
可用時間
\r\n \r\n
分鐘
\r\n
\r\n
\r\n 阻擋時間、可用時間,都是彈窗顯示瞬間開始計算。
\r\n 例如: 12:00 顯示彈窗,
\r\n 阻擋時間為 12:00~12:05 (5分),
\r\n 可用時間為 12:05~12:30 (可用30分扣掉阻擋5分 = 25分)\r\n
\r\n
\r\n
付費時間
\r\n \r\n
分鐘
\r\n
\r\n
\r\n
\r\n
確定
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PayTipConfigGlobalPopupComponent } from './pay-tip-config-global-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n ],\r\n declarations: [PayTipConfigGlobalPopupComponent],\r\n exports: [PayTipConfigGlobalPopupComponent]\r\n})\r\nexport class PayTipConfigGlobalPopupModule { }\r\n","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { RootManagementService } from 'projects/desktop/src/app/root/root-management/root-management.service';\r\n\r\n@Component({\r\n selector: 'app-pay-tip-config-personal-popup',\r\n templateUrl: './pay-tip-config-personal-popup.component.html',\r\n styleUrls: ['./pay-tip-config-personal-popup.component.scss']\r\n})\r\nexport class PayTipConfigPersonalPopupComponent extends BasePopup implements OnInit {\r\n\r\n member_id: string;\r\n source_limit_time_min: number;\r\n setted_limit_time_min: number;\r\n limit_time_min: number;\r\n limit_time_type: string;\r\n comment: string;\r\n default_limit_time_min: number;\r\n\r\n callback: () => void;\r\n\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n private rootManagementService: RootManagementService,\r\n ) { super(); }\r\n\r\n ngOnInit() { }\r\n initPopup(\r\n member_id: string,\r\n limit_time_min: number,\r\n limit_time_type: string,\r\n comment: string,\r\n callback: () => void,\r\n ): void {\r\n this.member_id = member_id;\r\n\r\n\r\n // this.default_limit_time_min = this.rootManagementService.payTipPopupFreeTimeMinDefault;\r\n this.source_limit_time_min = limit_time_min;\r\n\r\n\r\n this.limit_time_min = this.default_limit_time_min;\r\n if (this.default_limit_time_min < this.source_limit_time_min) {\r\n this.limit_time_min = this.source_limit_time_min;\r\n }\r\n this.limit_time_type = limit_time_type;\r\n\r\n this.comment = comment;\r\n this.callback = callback;\r\n }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n clickConfirm(): void {\r\n // this.rootManagementService.updateMemberPayTipPopupFreeTime({\r\n // member_id: this.member_id,\r\n // free_time_min: this.limit_time_min,\r\n // comment: this.comment,\r\n // }).subscribe(() => {\r\n // this.callback();\r\n // });\r\n this.closePopup();\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
限制時間
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
限制時間
\r\n \r\n
分鐘
\r\n
(預設:{{default_limit_time_min}}分鐘)
\r\n
(設定:{{source_limit_time_min}}分鐘,預設:{{default_limit_time_min}}分)
\r\n
(已付費)
\r\n
\r\n
\r\n
備註
\r\n \r\n
\r\n
\r\n
\r\n
確定
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PayTipConfigPersonalPopupComponent } from './pay-tip-config-personal-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n ],\r\n declarations: [PayTipConfigPersonalPopupComponent],\r\n exports: [PayTipConfigPersonalPopupComponent]\r\n})\r\nexport class PayTipConfigPersonalPopupModule { }\r\n","export enum PayStatusId {\r\n InFreeTime = 0,\r\n OverTime = 1,\r\n InBuffTime = 2,\r\n InBlockTime = 3,\r\n PaidMember = 4,\r\n}\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { PayTipPopupComponent } from './pay-tip-popup.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PayTipPopupOpenerService {\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(PayTipPopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(\r\n onClose?: () => void\r\n ): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(onClose);\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, HostListener, OnDestroy } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { PayService } from './pay.service';\r\nimport { PayStatusResult } from './pay-status-result';\r\nimport { PayStatusId } from './pay-status-id.enum';\r\nimport { Observable, Subscription, interval, empty, of } from 'rxjs';\r\nimport { tap, concatMap, catchError, delay } from 'rxjs/operators';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\n\r\n@Component({\r\n selector: 'app-pay-tip-popup',\r\n templateUrl: './pay-tip-popup.component.html',\r\n styleUrls: ['./pay-tip-popup.component.scss']\r\n})\r\nexport class PayTipPopupComponent extends BasePopup implements OnInit, OnDestroy {\r\n doNotUseLastClose: boolean = true;\r\n get blockToTime(): number { return this.payService.block_time_tick; }\r\n get remainingBlockTime(): number {\r\n const remainingTime = this.payService.block_time_tick - new Date().getTime();\r\n return remainingTime > 0 ? remainingTime : 0;\r\n }\r\n get remainingFreeTime(): number {\r\n const remainingTime = this.payService.buff_time_tick - new Date().getTime();\r\n return remainingTime > 0 ? remainingTime : 0;\r\n }\r\n remainingBlockTimeText: string = '';\r\n\r\n get enableClose(): boolean {\r\n return this.remainingBlockTime === 0 && this.remainingFreeTime > 0;\r\n }\r\n get tipsText(): string {\r\n return this.enableClose ?\r\n '關閉 [Esc]'\r\n : '請等待倒數時間';\r\n }\r\n\r\n get isContinue(): boolean {\r\n return this.payService.is_continue;\r\n }\r\n\r\n // status: string = '';\r\n // expireTime: number = 0;\r\n // timeText: string = '';\r\n\r\n textUpdateTimer: Subscription;\r\n waitRequest: boolean = false;\r\n\r\n\r\n\r\n\r\n onClose: () => void;\r\n\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n private payService: PayService,\r\n public appCommonService: AppCommonService,\r\n private notificationService: NotificationService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.payService.popup_opened = true;\r\n }\r\n ngOnDestroy(): void {\r\n if (this.onClose != null) {\r\n this.onClose();\r\n }\r\n if (this.textUpdateTimer) {\r\n this.textUpdateTimer.unsubscribe();\r\n this.textUpdateTimer = null;\r\n }\r\n this.payService.popup_opened = false;\r\n }\r\n initPopup(\r\n onClose?: () => void\r\n ): void {\r\n this.onClose = onClose;\r\n\r\n let remainingBlockChecked: boolean = false;\r\n let remainingFreeChecked: boolean = false;\r\n\r\n this.textUpdateTimer = interval(500)\r\n .pipe(\r\n concatMap(() => {\r\n this.remainingBlockTimeText = this.appCommonService.convertLeftTimeTickToTimeText2(this.remainingBlockTime);\r\n\r\n if (!remainingBlockChecked && this.remainingBlockTime === 0) {\r\n remainingBlockChecked = true;\r\n remainingFreeChecked = false;\r\n return this.payService.updatePayTipPopupTime()\r\n .pipe(delay(3000));\r\n } else if (!remainingFreeChecked && this.remainingFreeTime === 0) {\r\n remainingFreeChecked = true;\r\n remainingBlockChecked = false;\r\n return this.payService.updatePayTipPopupTime()\r\n .pipe(delay(3000));\r\n } else {\r\n return empty();\r\n }\r\n }),\r\n catchError((e) => {\r\n console.log(`error pay tip request -> 10s`);\r\n return of(e).pipe(delay(1000 * 10));\r\n })\r\n // tap(() => {\r\n // this.remainingBlockTimeText = this.appCommonService.convertLeftTimeTickToTimeText2(this.remainingBlockTime);\r\n // if (!remainingBlockChecked && this.remainingBlockTime === 0) {\r\n // remainingBlockChecked = true;\r\n // remainingFreeChecked = false;\r\n // if (!this.waitRequest) {\r\n // this.requestUpdatePayStatus();\r\n // }\r\n // } else if (!remainingFreeChecked && this.remainingFreeTime === 0) {\r\n // remainingFreeChecked = true;\r\n // remainingBlockChecked = false;\r\n // if (!this.waitRequest) {\r\n // this.requestUpdatePayStatus();\r\n // }\r\n // }\r\n // })\r\n )\r\n .subscribe();\r\n }\r\n requestUpdatePayStatus(): void {\r\n this.waitRequest = true;\r\n this.payService.updatePayTipPopupTime()\r\n .subscribe((result: PayStatusResult) => {\r\n this.waitRequest = false;\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n closePopup(): void {\r\n if (!this.enableClose) {\r\n return;\r\n }\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n\r\n // clickConfirm(): void {\r\n // this.closePopup();\r\n // }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27 && this.enableClose) {\r\n this.doNotUseLastClose = false;\r\n if (this.popupManagerService.closeLast()) {\r\n this.payService.popup_opened = false;\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
授權方案
\r\n
\r\n
\r\n
{{remainingBlockTimeText}}
\r\n
\r\n
\r\n
{{tipsText}}
\r\n
\r\n
\r\n
\r\n \r\n
付費支持
\r\n
邀請您加入 Legal Works 付費會員行列,以維護營運及提高生產力!
\r\n
讓我們為您持續創造更多功能與行動裝置系統。
\r\n
\r\n
\r\n
\r\n
大學生方案
\r\n
NT$ 6,200/年
\r\n
\r\n
\r\n
現為中華民國大學院校在學生【大學生】,且年齡為 24 歲 (含)以下者。
\r\n LINE小編 - 申請\r\n
\r\n
\r\n
\r\n
\r\n
研究生方案
\r\n
NT$ 8,600/年
\r\n
\r\n
\r\n
現為中華民國大學院校在學生【碩士生】,且年齡為 27歲 (含)以下者。
\r\n LINE小編 - 申請\r\n
\r\n
\r\n
\r\n
\r\n
法律職人方案
\r\n
NT$ 12,200/年
\r\n
\r\n
\r\n
從事法學研究、律師、公務員或其他法務工作者等(非在學生)。
\r\n LINE小編 - 申請\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
可使用「獎勵點數」抵免,相關辦法請來訊諮詢!
\r\n
\r\n
\r\n
\r\n
3人團報,可享95折優惠;5人團報,可享9折優惠!
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
{{remainingBlockTimeText}}
\r\n
\r\n
\r\n \r\n
{{tipsText}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
{{remainingBlockTimeText}}
\r\n
\r\n
\r\n \r\n
{{tipsText}}
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PayTipPopupComponent } from './pay-tip-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule\r\n ],\r\n declarations: [PayTipPopupComponent],\r\n exports: [PayTipPopupComponent]\r\n})\r\nexport class PayTipPopupModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Observable, interval, Subscriber } from 'rxjs';\r\nimport { PayStatusResult } from './pay-status-result';\r\nimport { DisconnectedPopupOpenerService } from '../disconnected-popup/disconnected-popup-opener.service';\r\nimport { tap } from 'rxjs/operators';\r\nimport { PayStatusId } from './pay-status-id.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PayService {\r\n\r\n // private timer: Subscription;\r\n status_checked: boolean;\r\n pay_status_id: PayStatusId;\r\n /** 阻擋直到下面時間 */\r\n block_time_tick: number = 0;\r\n /** 可使用直到下面時間 */\r\n buff_time_tick: number = 0;\r\n /** 彈窗是否開啟中 */\r\n popup_opened: boolean = false;\r\n /** 是否續費會員 */\r\n is_continue: boolean = false;\r\n\r\n\r\n\r\n get isPaidMember(): boolean {\r\n return this.pay_status_id === PayStatusId.PaidMember;\r\n }\r\n /** 超出免費時間、 */\r\n get isBlockSystem(): boolean {\r\n if (this.pay_status_id === PayStatusId.PaidMember) {\r\n return false;\r\n }\r\n const nowTime = new Date().getTime();\r\n if (this.pay_status_id === PayStatusId.InFreeTime\r\n && nowTime < this.buff_time_tick) {\r\n return false;\r\n }\r\n if (this.pay_status_id === PayStatusId.OverTime) {\r\n return true;\r\n }\r\n // 阻擋時間 < 現在時間 <= 可用時間\r\n return nowTime < this.block_time_tick || this.buff_time_tick < nowTime;\r\n }\r\n\r\n\r\n\r\n constructor(\r\n private service: AppService,\r\n private disconnectedPopupOpenerService: DisconnectedPopupOpenerService,\r\n ) { }\r\n\r\n\r\n\r\n\r\n\r\n // checkTimeStatus(): boolean {\r\n // const blockTime = new Date(this.block_time_tick);\r\n // const buffTime = new Date(this.buff_time_tick);\r\n // const nowTime = new Date();\r\n\r\n // if (nowTime < blockTime) {\r\n // return true;\r\n // }\r\n // }\r\n\r\n getPayStatus(): Observable {\r\n return this.service.get('user/pay_status');\r\n }\r\n updatePayStatus(): Observable {\r\n return this.service.get('user/pay_status')\r\n .pipe(\r\n tap((result: PayStatusResult) => {\r\n this.status_checked = true;\r\n this.setPayStatus(result);\r\n })\r\n );\r\n }\r\n updatePayTipPopupTime(): Observable {\r\n return this.service.get('user/pay_tip_popup_wait')\r\n .pipe(\r\n tap((result: PayStatusResult) => {\r\n this.status_checked = true;\r\n this.setPayStatus(result);\r\n })\r\n );\r\n }\r\n setPayStatus(result: PayStatusResult) {\r\n this.pay_status_id = result.pay_status_id;\r\n this.block_time_tick = result.block_time;\r\n this.buff_time_tick = result.buff_time;\r\n this.is_continue = result.is_continue;\r\n\r\n console.log(`payStatus:${PayStatusId[result.pay_status_id]}, blockTo:${new Date(result.block_time)}, freeTo:${new Date(result.buff_time)}`);\r\n console.log(`isBlock:${this.isBlockSystem}, isPopupOpened:${this.popup_opened}`);\r\n\r\n }\r\n // checkAgainTimer(countDownToTime: number): Observable {\r\n // return new Observable((subscriber: Subscriber) => {\r\n\r\n // const timer = interval(1000).subscribe(() => {\r\n // if (countDownToTime - new Date().getTime() < 0) {\r\n\r\n // timer.unsubscribe();\r\n // subscriber.next();\r\n // subscriber.complete();\r\n // }\r\n // });\r\n // });\r\n // }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { PermissionId } from './permission-id.enum';\r\nimport { PermissionData } from './permission-data';\r\n\r\n@Component({\r\n selector: 'app-permission-config-popup',\r\n templateUrl: './permission-config-popup.component.html',\r\n styleUrls: ['./permission-config-popup.component.scss']\r\n})\r\nexport class PermissionConfigPopupComponent implements OnInit {\r\n\r\n permission: { [key in keyof typeof PermissionId]: PermissionData } = {\r\n None: new PermissionData(PermissionId.None, false),\r\n CopyNote: new PermissionData(PermissionId.CopyNote, false),\r\n ShareNote: new PermissionData(PermissionId.ShareNote, false),\r\n EvaluateNote: new PermissionData(PermissionId.EvaluateNote, false),\r\n EditCategory: new PermissionData(PermissionId.EditCategory, false),\r\n EditNoteMeet: new PermissionData(PermissionId.EditNoteMeet, false),\r\n DeleteNote: new PermissionData(PermissionId.DeleteNote, false),\r\n RemoveMember: new PermissionData(PermissionId.RemoveMember, false),\r\n DeleteTeamMessage: new PermissionData(PermissionId.DeleteTeamMessage, false),\r\n InviteMember: new PermissionData(PermissionId.InviteMember, false),\r\n EditTeamNote: new PermissionData(PermissionId.EditTeamNote, false),\r\n UpdateAnnounce: new PermissionData(PermissionId.UpdateAnnounce, false),\r\n ShortcutNote: new PermissionData(PermissionId.ShortcutNote, false),\r\n LawBookEdit: new PermissionData(PermissionId.LawBookEdit, false),\r\n };\r\n onConfirm: () => void;\r\n needUpdate: boolean = false;\r\n\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() { }\r\n closePopup(): void {\r\n this.matDialogRef.close();\r\n }\r\n\r\n togglePermission(data: PermissionData): void {\r\n data.enable = !data.enable;\r\n }\r\n clear(): void {\r\n this.permission.CopyNote.enable = false;\r\n this.permission.ShareNote.enable = false;\r\n this.permission.EvaluateNote.enable = false;\r\n this.permission.EditCategory.enable = false;\r\n this.permission.EditNoteMeet.enable = false;\r\n this.permission.DeleteNote.enable = false;\r\n this.permission.RemoveMember.enable = false;\r\n this.permission.DeleteTeamMessage.enable = false;\r\n this.permission.InviteMember.enable = false;\r\n this.permission.EditTeamNote.enable = false;\r\n this.permission.UpdateAnnounce.enable = false;\r\n this.permission.ShortcutNote.enable = false;\r\n }\r\n\r\n clickConfirm(): void {\r\n if (this.onConfirm) {\r\n this.onConfirm();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n
權限設定
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
分類分項編輯權
\r\n
\r\n
\r\n
\r\n
筆記修改編輯權
\r\n
\r\n
\r\n
\r\n
公告編輯廣播權
\r\n
\r\n
\r\n
\r\n
捷徑分享權
\r\n
\r\n \r\n
\r\n
\r\n
案件下載權
\r\n
\r\n
\r\n
\r\n
筆記分享權
\r\n
\r\n
\r\n
\r\n
筆記評定權
\r\n
\r\n
\r\n
\r\n
刪除筆記權
\r\n
\r\n
\r\n
\r\n
邀請成員權
\r\n
\r\n \r\n
\r\n
\r\n
確定
\r\n
清除
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PermissionConfigPopupComponent } from './permission-config-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PermissionConfigPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [PermissionConfigPopupComponent]\r\n})\r\nexport class PermissionConfigPopupModule { }\r\n","import { PermissionId } from './permission-id.enum';\r\n\r\nexport class PermissionData {\r\n id: PermissionId;\r\n enable: boolean;\r\n member_id: string;\r\n enable_date: string;\r\n enable_by_member_id: string;\r\n\r\n constructor(\r\n id: PermissionId,\r\n enable: boolean,\r\n ) {\r\n this.id = id;\r\n this.enable = enable;\r\n }\r\n}\r\n","export enum PermissionId {\r\n None = 0,\r\n CopyNote = 1,\r\n ShareNote = 2,\r\n EvaluateNote = 3,\r\n EditCategory = 4,\r\n EditNoteMeet = 5,\r\n DeleteNote = 6,\r\n RemoveMember = 7,\r\n InviteMember = 8,\r\n DeleteTeamMessage = 9,\r\n EditTeamNote = 10,\r\n UpdateAnnounce = 11,\r\n ShortcutNote = 12,\r\n LawBookEdit = 13,\r\n}\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { AppCommonStatic } from 'projects/desktop/src/app/app-common-static';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { LwExt } from '../lib/lw-ext';\r\nimport { PermissionSettingLog } from './permission-setting';\r\n\r\n@Component({\r\n selector: 'lib-permission-setting-popup',\r\n templateUrl: './permission-setting-popup.component.html',\r\n styleUrls: ['./permission-setting-popup.component.scss']\r\n})\r\nexport class PermissionSettingPopupComponent implements OnInit {\r\n\r\n usage_time_current: number;\r\n judgment_note_save_current: number;\r\n lawRule_note_save_current: number;\r\n judicialInterpret_note_save_current: number;\r\n total_summary_save_current: number;\r\n\r\n usage_time_max: number;\r\n judgment_note_save_max: number;\r\n lawRule_note_save_max: number;\r\n judicialInterpret_note_save_max: number;\r\n total_summary_save_max: number;\r\n\r\n usage_time_input: number;\r\n judgment_note_save_input: number;\r\n lawRule_note_save_input: number;\r\n judicialInterpret_note_save_input: number;\r\n total_summary_save_input: number;\r\n\r\n summary_save_type_count: { class: string, count: number }[] = [];\r\n\r\n\r\n searchAll_permission: boolean;\r\n lawNoteSummaryFilter_permission: boolean;\r\n judgmentNotePrint_permission: boolean;\r\n lawRulePrint_permission: boolean;\r\n lawRuleCheckIn_permission: boolean;\r\n newSiteLogin_permission: boolean;\r\n judicialInterpretExecuteNote_permission: boolean;\r\n newMobileVersion_permission: boolean;\r\n\r\n\r\n searchAll_permission_open_date: string;\r\n lawNoteSummaryFilter_permission_open_date: string;\r\n judgmentNotePrint_permission_open_date: string;\r\n lawRulePrint_permission_open_date: string;\r\n lawRuleCheckIn_permission_open_date: string;\r\n newSiteLogin_permission_open_date: string;\r\n judicialInterpretExecuteNote_permission_open_date: string;\r\n newMobileVersion_permission_open_date: string;\r\n\r\n plan_start_date_current: Date;\r\n plan_expire_date_current: Date;\r\n plan_start_date_input: Date = new Date(0);\r\n plan_expire_date_input: Date = new Date(0);\r\n plan_start_date_input_string: string = '';\r\n plan_expire_date_input_string: string = '';\r\n plan_start_date_text: string;\r\n plan_expire_date_text: string;\r\n get IsInPlan(): boolean { return this.plan_expire_date_input > new Date(); }\r\n\r\n\r\n comment: string = '';\r\n\r\n isPlanChanged: boolean = false;\r\n enableParameterConfirmButton: boolean = false;\r\n enableParameterResetButton: boolean = false;\r\n enablePlanConfirmButton: boolean = false;\r\n enableCommentClearButton: boolean = false;\r\n\r\n logs: PermissionSettingLog[];\r\n\r\n plan_job: string = '1';\r\n plan_type: string = '1';\r\n planJob = {\r\n '1': '大學生',\r\n '2': '研究生',\r\n '3': '在職人',\r\n };\r\n planType = {\r\n '1': '免費體驗',\r\n '2': '經濟艙',\r\n '3': '商務艙',\r\n '4': '頭等艙',\r\n };\r\n planSetting = {\r\n 'free': {\r\n usage_time: 120,\r\n judgment_note_save: 10,\r\n lawRule_note_save: 20,\r\n judicialInterpret_note_save: 10,\r\n total_summary_save: 40,\r\n },\r\n 'vip': {\r\n usage_time: 99999999,\r\n judgment_note_save: 99999999,\r\n lawRule_note_save: 99999999,\r\n judicialInterpret_note_save: 99999999,\r\n total_summary_save: 99999999,\r\n lawRuleCheckIn_permission: true,\r\n lawRulePrint_permission: true,\r\n },\r\n '1-2': {\r\n usage_time: 2400,\r\n judgment_note_save: 25,\r\n lawRule_note_save: 35,\r\n judicialInterpret_note_save: 25,\r\n total_summary_save: 75,\r\n },\r\n '1-3': {\r\n usage_time: 99999999,\r\n judgment_note_save: 99,\r\n lawRule_note_save: 50,\r\n judicialInterpret_note_save: 99,\r\n total_summary_save: 799,\r\n },\r\n '2-2': {\r\n usage_time: 3600,\r\n judgment_note_save: 40,\r\n lawRule_note_save: 40,\r\n judicialInterpret_note_save: 40,\r\n total_summary_save: 99,\r\n },\r\n '2-3': {\r\n usage_time: 99999999,\r\n judgment_note_save: 120,\r\n lawRule_note_save: 60,\r\n judicialInterpret_note_save: 120,\r\n total_summary_save: 999,\r\n },\r\n '3-2': {\r\n usage_time: 4800,\r\n judgment_note_save: 60,\r\n lawRule_note_save: 50,\r\n judicialInterpret_note_save: 60,\r\n total_summary_save: 99,\r\n },\r\n '3-3': {\r\n usage_time: 99999999,\r\n judgment_note_save: 250,\r\n lawRule_note_save: 80,\r\n judicialInterpret_note_save: 250,\r\n total_summary_save: 999,\r\n },\r\n }\r\n\r\n isOverPlanDate: boolean = false;\r\n levelChangeWarning: boolean = false;\r\n\r\n onUpdateParameter: () => void;\r\n\r\n onUpdatePermission_searchAll: (value: boolean) => void;\r\n onUpdatePermission_lawNoteSummaryFilter: (value: boolean) => void;\r\n onUpdatePermission_judgmentNotePrint: (value: boolean) => void;\r\n onUpdatePermission_lawRulePrint: (value: boolean) => void;\r\n onUpdatePermission_lawRuleCheckIn: (value: boolean) => void;\r\n onUpdatePermission_newSiteLogin: (value: boolean) => void;\r\n onUpdatePermission_judicialInterpretExecuteNote: (value: boolean) => void;\r\n onUpdatePermission_newMobileVersion: (value: boolean) => void;\r\n\r\n onUpdatePlan: () => void;\r\n\r\n showJob: boolean = false;\r\n showPlan: boolean = false;\r\n showLogInfoItem: any;\r\n lockShowLogInfoItem: boolean = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n ngOnInit(): void {\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n setup(\r\n usage_time_current: number, usage_time_max: number,\r\n judgment_note_save_current: number, judgment_note_save_max: number,\r\n lawRule_note_save_current: number, lawRule_note_save_max: number,\r\n judicialInterpret_note_save_current: number, judicialInterpret_note_save_max: number,\r\n total_summary_save_current: number, total_summary_save_max: number,\r\n searchAll_permission: boolean, searchAll_permission_open_date: string,\r\n // lawNoteSummaryFilter_permission: boolean, lawNoteSummaryFilter_permission_open_date: string,\r\n judgmentNotePrint_permission: boolean, judgmentNotePrint_permission_open_date: string,\r\n lawRulePrint_permission: boolean, lawRulePrint_permission_open_date: string,\r\n lawRuleCheckIn_permission: boolean, lawRuleCheckIn_permission_open_date: string,\r\n newSiteLogin_permission: boolean, newSiteLogin_permission_open_date: string,\r\n judicialInterpretExecuteNote_permission: boolean, judicialInterpretExecuteNote_permission_open_date: string,\r\n newMobileVersion_permission: boolean, newMobileVersion_permission_open_date: string,\r\n plan_job: string,\r\n plan_type: string,\r\n plan_start_date: Date,\r\n plan_expire_date: Date,\r\n logs: PermissionSettingLog[],\r\n summaryTypeCount: { class: string, count: number }[],\r\n onUpdateParameter: () => void,\r\n onUpdatePermission_searchAll: (value: boolean) => void,\r\n // onUpdatePermission_lawNoteSummaryFilter: (value: boolean) => void,\r\n onUpdatePermission_judgmentNotePrint: (value: boolean) => void,\r\n onUpdatePermission_lawRulePrint: (value: boolean) => void,\r\n onUpdatePermission_lawRuleCheckIn: (value: boolean) => void,\r\n onUpdatePermission_newSiteLogin: (value: boolean) => void,\r\n onUpdatePermission_judicialInterpretExecuteNote: (value: boolean) => void,\r\n onUpdatePermission_newMobileVersion: (value: boolean) => void,\r\n onUpdatePlan: () => void,\r\n ): void {\r\n this.usage_time_current = usage_time_current;\r\n this.judgment_note_save_current = judgment_note_save_current;\r\n this.lawRule_note_save_current = lawRule_note_save_current;\r\n this.judicialInterpret_note_save_current = judicialInterpret_note_save_current;\r\n this.total_summary_save_current = total_summary_save_current;\r\n\r\n this.plan_job = plan_job;\r\n if (!['1', '2', '3'].some(v => v == this.plan_job)) {\r\n this.plan_job = '1';\r\n }\r\n\r\n this.plan_type = plan_type;\r\n if (!['1', '2', '3', '4'].some(v => v == this.plan_type)) {\r\n this.plan_type = '1';\r\n }\r\n\r\n const ps = this.getPlanSetting(this.plan_job, this.plan_type);\r\n\r\n this.usage_time_max = usage_time_max;\r\n this.judgment_note_save_max = judgment_note_save_max;\r\n this.lawRule_note_save_max = lawRule_note_save_max;\r\n this.judicialInterpret_note_save_max = judicialInterpret_note_save_max;\r\n this.total_summary_save_max = total_summary_save_max;\r\n\r\n this.usage_time_input = this.usage_time_max;\r\n this.judgment_note_save_input = this.judgment_note_save_max;\r\n this.lawRule_note_save_input = this.lawRule_note_save_max;\r\n this.judicialInterpret_note_save_input = this.judicialInterpret_note_save_max;\r\n this.total_summary_save_input = this.total_summary_save_max;\r\n\r\n this.searchAll_permission = searchAll_permission;\r\n // this.lawNoteSummaryFilter_permission = lawNoteSummaryFilter_permission;\r\n this.judgmentNotePrint_permission = judgmentNotePrint_permission;\r\n this.lawRulePrint_permission = lawRulePrint_permission;\r\n this.lawRuleCheckIn_permission = lawRuleCheckIn_permission;\r\n this.newSiteLogin_permission = newSiteLogin_permission;\r\n this.judicialInterpretExecuteNote_permission = judicialInterpretExecuteNote_permission;\r\n this.newMobileVersion_permission = newMobileVersion_permission;\r\n\r\n this.searchAll_permission_open_date = searchAll_permission_open_date;\r\n // this.lawNoteSummaryFilter_permission_open_date = lawNoteSummaryFilter_permission_open_date;\r\n const judgmentNotePrint_permission_open_date_time = Date.parse(judgmentNotePrint_permission_open_date);\r\n this.judgmentNotePrint_permission_open_date = judgmentNotePrint_permission_open_date_time == 0 ? '' : AppCommonStatic.convertTimeTickToTimeText1(judgmentNotePrint_permission_open_date_time);\r\n const lawRulePrint_permission_open_date_time = Date.parse(lawRulePrint_permission_open_date);\r\n this.lawRulePrint_permission_open_date = lawRulePrint_permission_open_date_time == 0 ? '' : AppCommonStatic.convertTimeTickToTimeText1(lawRulePrint_permission_open_date_time);\r\n const lawRuleCheckIn_permission_open_date_time = Date.parse(lawRuleCheckIn_permission_open_date);\r\n this.lawRuleCheckIn_permission_open_date = lawRuleCheckIn_permission_open_date_time == 0 ? '' : AppCommonStatic.convertTimeTickToTimeText1(lawRuleCheckIn_permission_open_date_time);\r\n const newSiteLogin_permission_open_date_time = Date.parse(newSiteLogin_permission_open_date);\r\n this.newSiteLogin_permission_open_date = newSiteLogin_permission_open_date_time == 0 ? '' : AppCommonStatic.convertTimeTickToTimeText1(newSiteLogin_permission_open_date_time);\r\n const judicialInterpretExecuteNote_permission_open_date_time = Date.parse(judicialInterpretExecuteNote_permission_open_date);\r\n this.judicialInterpretExecuteNote_permission_open_date = judicialInterpretExecuteNote_permission_open_date_time == 0 ? '' : AppCommonStatic.convertTimeTickToTimeText1(judicialInterpretExecuteNote_permission_open_date_time);\r\n const newMobileVersion_permission_open_date_time = Date.parse(newMobileVersion_permission_open_date);\r\n this.newMobileVersion_permission_open_date = newMobileVersion_permission_open_date_time == 0 ? '' : AppCommonStatic.convertTimeTickToTimeText1(newMobileVersion_permission_open_date_time);\r\n\r\n this.plan_start_date_current = plan_start_date;\r\n this.plan_expire_date_current = plan_expire_date;\r\n this.plan_start_date_input = plan_start_date;\r\n this.plan_expire_date_input = plan_expire_date;\r\n this.plan_start_date_input_string = this.convertDateToInputDateString(this.plan_start_date_input);\r\n this.plan_expire_date_input_string = this.convertDateToInputDateString(this.plan_expire_date_input);\r\n\r\n this.plan_start_date_text = '';\r\n if (plan_start_date.getTime() > 0) {\r\n this.plan_start_date_text = AppCommonStatic.convertTimeTickToTimeText1(plan_start_date.getTime()) + ' 起';\r\n }\r\n\r\n this.plan_expire_date_text = '';\r\n if (plan_expire_date.getTime() > 0) {\r\n this.plan_expire_date_text = AppCommonStatic.convertTimeTickToTimeText1(plan_expire_date.getTime()) + ' 止';\r\n }\r\n\r\n this.isOverPlanDate = this.plan_expire_date_input.getTime() < new Date().getTime();\r\n\r\n this.logs = logs;\r\n this.summary_save_type_count = summaryTypeCount;\r\n\r\n this.onUpdateParameter = onUpdateParameter;\r\n\r\n this.onUpdatePermission_searchAll = onUpdatePermission_searchAll;\r\n // this.onUpdatePermission_lawNoteSummaryFilter = onUpdatePermission_lawNoteSummaryFilter;\r\n this.onUpdatePermission_judgmentNotePrint = onUpdatePermission_judgmentNotePrint;\r\n this.onUpdatePermission_lawRulePrint = onUpdatePermission_lawRulePrint;\r\n this.onUpdatePermission_lawRuleCheckIn = onUpdatePermission_lawRuleCheckIn;\r\n this.onUpdatePermission_newSiteLogin = onUpdatePermission_newSiteLogin;\r\n this.onUpdatePermission_judicialInterpretExecuteNote = onUpdatePermission_judicialInterpretExecuteNote;\r\n this.onUpdatePermission_newMobileVersion = onUpdatePermission_newMobileVersion;\r\n\r\n this.onUpdatePlan = onUpdatePlan;\r\n\r\n console.log(this);\r\n\r\n }\r\n\r\n onParameterChanged(): void {\r\n this.enableParameterConfirmButton = true;\r\n this.enableParameterResetButton = true;\r\n }\r\n onPlanChanged(): void {\r\n this.isPlanChanged = true;\r\n this.checkEnablePlanConfirmButton();\r\n }\r\n onCommentChanged(): void {\r\n this.enableCommentClearButton = false;\r\n if (this.comment.trim().length > 0) {\r\n this.enableCommentClearButton = true;\r\n }\r\n this.checkEnablePlanConfirmButton();\r\n }\r\n checkEnablePlanConfirmButton(): void {\r\n this.enablePlanConfirmButton = false;\r\n if (this.isPlanChanged && this.comment.trim().length > 0) {\r\n this.enablePlanConfirmButton = true;\r\n }\r\n }\r\n\r\n confirmSaveParameter(): void {\r\n if (this.onUpdateParameter != null) {\r\n this.onUpdateParameter();\r\n }\r\n this.usage_time_max = this.usage_time_input;\r\n this.judgment_note_save_max = this.judgment_note_save_input;\r\n this.lawRule_note_save_max = this.lawRule_note_save_input;\r\n this.judicialInterpret_note_save_max = this.judicialInterpret_note_save_input;\r\n this.total_summary_save_max = this.total_summary_save_input;\r\n this.enableParameterResetButton = false;\r\n this.enableParameterConfirmButton = false;\r\n }\r\n resetParameter(): void {\r\n this.usage_time_input = this.usage_time_max;\r\n this.judgment_note_save_input = this.judgment_note_save_max;\r\n this.lawRule_note_save_input = this.lawRule_note_save_max;\r\n this.judicialInterpret_note_save_input = this.judicialInterpret_note_save_max;\r\n this.total_summary_save_input = this.total_summary_save_max;\r\n\r\n this.enableParameterResetButton = false;\r\n this.enableParameterConfirmButton = false;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n updatePermission_searchAll(): void {\r\n if (this.onUpdatePermission_searchAll != null) {\r\n this.onUpdatePermission_searchAll(this.searchAll_permission);\r\n }\r\n }\r\n updatePermission_lawNoteSummaryFilter(): void {\r\n if (this.onUpdatePermission_lawNoteSummaryFilter != null) {\r\n this.onUpdatePermission_lawNoteSummaryFilter(this.lawNoteSummaryFilter_permission);\r\n }\r\n }\r\n updatePermission_judgmentNotePrint(): void {\r\n if (this.onUpdatePermission_judgmentNotePrint != null) {\r\n this.onUpdatePermission_judgmentNotePrint(this.judgmentNotePrint_permission);\r\n }\r\n }\r\n updatePermission_lawRulePrint(): void {\r\n if (this.onUpdatePermission_lawRulePrint != null) {\r\n this.onUpdatePermission_lawRulePrint(this.lawRulePrint_permission);\r\n }\r\n }\r\n updatePermission_lawRuleCheckIn(): void {\r\n if (this.onUpdatePermission_lawRuleCheckIn != null) {\r\n this.onUpdatePermission_lawRuleCheckIn(this.lawRuleCheckIn_permission);\r\n }\r\n }\r\n updatePermission_newSiteLogin(): void {\r\n // console.log('newSiteLogin_permission', this.newSiteLogin_permission);\r\n if (this.onUpdatePermission_newSiteLogin != null) {\r\n this.onUpdatePermission_newSiteLogin(this.newSiteLogin_permission);\r\n }\r\n }\r\n updatePermission_judicialInterpretExecuteNote(): void {\r\n if (this.onUpdatePermission_judicialInterpretExecuteNote != null) {\r\n this.onUpdatePermission_judicialInterpretExecuteNote(this.judicialInterpretExecuteNote_permission);\r\n }\r\n }\r\n updatePermission_newMobileVersion(): void {\r\n if (this.onUpdatePermission_newMobileVersion != null) {\r\n this.onUpdatePermission_newMobileVersion(this.newMobileVersion_permission);\r\n }\r\n }\r\n\r\n\r\n selectPlanJob(value: string): void {\r\n this.plan_job = value;\r\n this.showJob = false;\r\n this.isPlanChanged = true;\r\n this.onPlanUpdateSetting();\r\n this.checkPlanChanged();\r\n }\r\n selectPlanType(value: string): void {\r\n this.plan_type = value;\r\n this.showPlan = false;\r\n this.isPlanChanged = true;\r\n this.onPlanUpdateSetting();\r\n this.checkPlanChanged();\r\n }\r\n onPlanUpdateSetting(): void {\r\n const setting = this.getPlanSetting(this.plan_job, this.plan_type);\r\n\r\n if (this.comment.length == 0) {\r\n this.levelChangeWarning = true;\r\n }\r\n\r\n if (this.usage_time_input != setting['usage_time']) {\r\n if (['1', '3', '4'].some(v => v == this.plan_type)) {\r\n this.usage_time_input = setting['usage_time'];\r\n } else {\r\n this.usage_time_input = this.usage_time_current + setting['usage_time'];\r\n }\r\n this.enableParameterConfirmButton = true;\r\n this.enableParameterResetButton = true;\r\n }\r\n if (this.judgment_note_save_input != setting['judgment_note_save']) {\r\n this.judgment_note_save_input = setting['judgment_note_save'];\r\n this.enableParameterConfirmButton = true;\r\n this.enableParameterResetButton = true;\r\n }\r\n if (this.lawRule_note_save_input != setting['lawRule_note_save']) {\r\n this.lawRule_note_save_input = setting['lawRule_note_save'];\r\n this.enableParameterConfirmButton = true;\r\n this.enableParameterResetButton = true;\r\n }\r\n if (this.judicialInterpret_note_save_input != setting['judicialInterpret_note_save']) {\r\n this.judicialInterpret_note_save_input = setting['judicialInterpret_note_save'];\r\n this.enableParameterConfirmButton = true;\r\n this.enableParameterResetButton = true;\r\n }\r\n if (this.total_summary_save_input != setting['total_summary_save']) {\r\n this.total_summary_save_input = setting['total_summary_save'];\r\n this.enableParameterConfirmButton = true;\r\n this.enableParameterResetButton = true;\r\n }\r\n\r\n // free\r\n if (this.plan_type == '1') {\r\n this.plan_start_date_input = new Date(0);\r\n this.plan_expire_date_input = new Date(0);\r\n this.isOverPlanDate = false;\r\n } else {\r\n const currentTime = new Date().getTime();\r\n const after365DayTime = currentTime + (1000 * 60 * 60 * 24 * 365);\r\n this.plan_start_date_input = new Date(currentTime);\r\n this.plan_expire_date_input = new Date(after365DayTime);\r\n this.plan_start_date_text = AppCommonStatic.convertTimeTickToTimeText1(this.plan_start_date_input.getTime()) + ' 起';\r\n this.plan_expire_date_text = AppCommonStatic.convertTimeTickToTimeText1(this.plan_expire_date_input.getTime()) + ' 止';\r\n this.plan_start_date_input_string = this.convertDateToInputDateString(this.plan_start_date_input);\r\n this.plan_expire_date_input_string = this.convertDateToInputDateString(this.plan_expire_date_input);\r\n\r\n this.isOverPlanDate = this.plan_expire_date_input.getTime() < new Date().getTime();\r\n }\r\n }\r\n onPlanDateInputUpdate(): void {\r\n console.log(this.plan_start_date_input_string, new Date(Date.parse(this.plan_start_date_input_string)));\r\n console.log(this.plan_expire_date_input_string, new Date(Date.parse(this.plan_expire_date_input_string)));\r\n this.plan_start_date_input = new Date(Date.parse(this.plan_start_date_input_string));\r\n this.plan_expire_date_input = new Date(Date.parse(this.plan_expire_date_input_string));\r\n this.plan_start_date_text = AppCommonStatic.convertTimeTickToTimeText1(this.plan_start_date_input.getTime()) + ' 起';\r\n this.plan_expire_date_text = AppCommonStatic.convertTimeTickToTimeText1(this.plan_expire_date_input.getTime()) + ' 止';\r\n\r\n this.isOverPlanDate = this.plan_expire_date_input.getTime() < new Date().getTime();\r\n }\r\n convertDateToInputDateString(date: Date): string {\r\n return (date.getFullYear().toString() + '-'\r\n + (\"0\" + (date.getMonth() + 1)).slice(-2) + '-'\r\n + (\"0\" + (date.getDate())).slice(-2))\r\n + 'T' + date.toTimeString().slice(0, 5);\r\n }\r\n getPlanSetting(job: string, type: string): any {\r\n if (type == '1') {\r\n return this.planSetting.free;\r\n } else if (type == '4') {\r\n return this.planSetting.vip;\r\n } else {\r\n const key = job + '-' + type;\r\n return this.planSetting[key];\r\n }\r\n }\r\n\r\n checkPlanChanged(): void {\r\n this.enableCommentClearButton = false;\r\n this.enablePlanConfirmButton = false;\r\n if (this.comment.trim().length > 0) {\r\n this.enableCommentClearButton = true;\r\n }\r\n if (this.isPlanChanged && this.enableCommentClearButton) {\r\n this.enablePlanConfirmButton = true;\r\n }\r\n }\r\n confirmSavePlan(): void {\r\n if (this.onUpdatePlan != null) {\r\n const setting = this.getPlanSetting(this.plan_job, this.plan_type);\r\n if (setting['lawRuleCheckIn_permission']) {\r\n if (!this.lawRuleCheckIn_permission) {\r\n this.lawRuleCheckIn_permission = true;\r\n this.updatePermission_lawRuleCheckIn();\r\n }\r\n }\r\n if (setting['lawRulePrint_permission']) {\r\n if (!this.lawRulePrint_permission) {\r\n this.lawRulePrint_permission = true;\r\n this.updatePermission_lawRulePrint();\r\n }\r\n }\r\n\r\n this.onUpdatePlan();\r\n\r\n this.plan_start_date_current = this.plan_start_date_input;\r\n this.plan_expire_date_current = this.plan_expire_date_input;\r\n this.enableCommentClearButton = false;\r\n this.enablePlanConfirmButton = false;\r\n this.comment = '';\r\n }\r\n }\r\n clearComment(): void {\r\n this.comment = '';\r\n this.checkPlanChanged();\r\n }\r\n\r\n getSummaryIconPath(itemIcon: any): string {\r\n // const path = itemIcon.replace(/^icon\\/(.+$)/, '/assets/img/summary/$1');\r\n // return path;\r\n\r\n\r\n\r\n\r\n return '/assets/old_content/content/images/' + itemIcon;\r\n }\r\n convertDateText(date: any): string {\r\n const ticks = Date.parse(date);\r\n if (ticks > 0) {\r\n return AppCommonStatic.convertTimeTickToTimeText1(ticks);\r\n }\r\n return '';\r\n }\r\n\r\n\r\n\r\n showLogInfo(item: any, isLock?: boolean): void {\r\n if (this.showLogInfoItem == item) {\r\n this.showLogInfoItem = null;\r\n } else {\r\n this.showLogInfoItem = item;\r\n }\r\n }\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) checkOnClick(ev: MouseEvent): void {\r\n if (this.showLogInfoItem\r\n && (\r\n !this.checkCursorClickClassName(ev, 'log-info')\r\n )) {\r\n this.showLogInfoItem = null;\r\n }\r\n if (this.showJob && (\r\n !this.checkCursorClickClassName(ev, 'plan-job')\r\n )) {\r\n this.showJob = false;\r\n }\r\n if (this.showPlan && (\r\n !this.checkCursorClickClassName(ev, 'plan-type')\r\n )) {\r\n this.showPlan = false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
帳戶權限
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
參數設定
\r\n
\r\n
\r\n
\r\n
目前使用
\r\n
設定上限
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{usage_time_current}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{judgment_note_save_current}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{lawRule_note_save_current}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{judicialInterpret_note_save_current}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{total_summary_save_current}}
\r\n
0\">\r\n
\r\n
\r\n
{{item.count}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
確定儲存
\r\n
還原設定
\r\n
\r\n
\r\n
\r\n
\r\n
特殊功能
\r\n
\r\n
\r\n
\r\n
\r\n
全面檢索
\r\n \r\n
\r\n
{{searchAll_permission_open_date}}
\r\n
\r\n \r\n
\r\n
\r\n
裁判列印
\r\n \r\n
\r\n
{{judgmentNotePrint_permission_open_date}}
\r\n
\r\n
\r\n
\r\n
法規列印
\r\n \r\n
\r\n
{{lawRulePrint_permission_open_date}}
\r\n
\r\n
\r\n
\r\n
法規打卡
\r\n \r\n
\r\n
{{lawRuleCheckIn_permission_open_date}}
\r\n
\r\n
\r\n
\r\n
新版登入
\r\n \r\n
\r\n
{{newSiteLogin_permission_open_date}}
\r\n
\r\n
\r\n
\r\n
行政函令
\r\n \r\n
\r\n
{{judicialInterpretExecuteNote_permission_open_date}}
\r\n
\r\n
\r\n
\r\n
新手機版
\r\n \r\n
\r\n
{{newMobileVersion_permission_open_date}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
授權方案
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
用戶身份
\r\n
\r\n
{{planJob[plan_job]}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{planJob['1']}}
\r\n
{{planJob['2']}}
\r\n
{{planJob['3']}}
\r\n
\r\n
\r\n
\r\n
\r\n
購買等級
\r\n
\r\n
{{planType[plan_type]}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{planType['1']}}\r\n
\r\n
{{planType['2']}}\r\n
\r\n
{{planType['3']}}\r\n
\r\n
{{planType['4']}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
{{plan_start_date_text}}
\r\n \r\n
{{plan_expire_date_text}}
\r\n
\r\n
尚未授權
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
確定儲存\r\n
\r\n
清除備註
\r\n
\r\n
\r\n
\r\n
\r\n
授權記錄
\r\n
\r\n
\r\n
\r\n
\r\n
{{item.adminName}}
\r\n
\r\n
操作:{{convertDateText(item.operateDate)}}
\r\n
起始:{{convertDateText(item.planStartDate)}}
\r\n
截止:{{convertDateText(item.planExpireDate)}}
\r\n
\r\n
\r\n
{{item.comment}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PermissionSettingPopupComponent } from './permission-setting-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PermissionSettingPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [PermissionSettingPopupComponent]\r\n})\r\nexport class PermissionSettingPopupModule { }\r\n","import { Component, OnInit, ViewChild, OnDestroy, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { PersonalConfigPopupService, PersonalConfig } from './personal-config-popup.service';\r\nimport { SettingContentStorageHomeComponent } from './setting-content-storage-home/setting-content-storage-home.component';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\n\r\n@Component({\r\n selector: 'app-personal-config-popup',\r\n templateUrl: './personal-config-popup.component.html',\r\n styleUrls: ['./personal-config-popup.component.scss'],\r\n // host: {\r\n // '(document:keydown)': 'checkKeydown($event)',\r\n // }\r\n})\r\nexport class PersonalConfigPopupComponent extends BasePopup implements OnInit, OnDestroy {\r\n constructor(\r\n private popupManagerService: PopupManagerService,\r\n private personalConfigPopupService: PersonalConfigPopupService,\r\n ) {\r\n super();\r\n }\r\n\r\n @Output() confirm: EventEmitter = new EventEmitter();\r\n onConfirm: (c: PersonalConfig) => void;\r\n\r\n get isTeam(): boolean { return this.personalConfigPopupService.isTeam; }\r\n set isTeam(value) { this.personalConfigPopupService.isTeam = value; }\r\n get personalConfig(): PersonalConfig { return this.personalConfigPopupService.editPersonalConfig; }\r\n\r\n // clickShowPopup: boolean = false;\r\n // personalConfig: PersonalConfig;\r\n selectedTab: string = '';\r\n\r\n\r\n\r\n ngOnInit() { }\r\n ngOnDestroy() { }\r\n\r\n\r\n\r\n initPopup(): void {\r\n this.reset();\r\n this.selectedTab = 'storage-home';\r\n // console.log(this.personalConfigPopupService.personalConfig);\r\n // console.log(this.personalConfigPopupService.editPersonalConfig);\r\n }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n\r\n\r\n /** 復原最後設定 */\r\n reset(): void {\r\n this.personalConfigPopupService.copyToEdit();\r\n // this.personalConfig =\r\n // JSON.parse(JSON.stringify(\r\n // this.personalConfigPopupService.personalConfig\r\n // ));\r\n }\r\n // 選擇分頁\r\n selectTab(tab: string): void {\r\n this.selectedTab = tab;\r\n }\r\n\r\n\r\n // // 開啟彈窗\r\n // openPopup(): void {\r\n // this.clickShowPopup = true;\r\n // }\r\n // // 關閉彈窗\r\n // closePopup(): void {\r\n // // this.clickShowPopup = false;\r\n // // this.reset();\r\n // }\r\n // // 檢查按下的按鍵\r\n // checkKeydown(ev: KeyboardEvent): void {\r\n // if (ev.keyCode === 27) {\r\n // this.closePopup();\r\n // }\r\n // }\r\n // 確認更改\r\n confirmEdit(): void {\r\n this.confirm.emit(this.personalConfig);\r\n if (this.onConfirm != null) {\r\n this.onConfirm(this.personalConfig);\r\n }\r\n // console.log('confirm personal config');\r\n\r\n // this.personalConfigPopupService.confirm(this.personalConfig);\r\n // this.closePopup();\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
個人化設定
\r\n \r\n
\r\n
\r\n
倉庫首頁
\r\n
顯示模式
\r\n
排序方式
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { PersonalConfigPopupComponent } from './personal-config-popup.component';\r\nimport { SettingContentStorageHomeComponent } from './setting-content-storage-home/setting-content-storage-home.component';\r\nimport { SettingContentDisplayModeComponent } from './setting-content-display-mode/setting-content-display-mode.component';\r\nimport { SettingContentOrderWayComponent } from './setting-content-order-way/setting-content-order-way.component';\r\n\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { PersonalConfigPopupService } from './personal-config-popup.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FramePopupCloseModule,\r\n ],\r\n // providers: [\r\n // PersonalConfigPopupService\r\n // ],\r\n declarations: [\r\n PersonalConfigPopupComponent,\r\n SettingContentStorageHomeComponent,\r\n SettingContentDisplayModeComponent,\r\n SettingContentOrderWayComponent\r\n ],\r\n exports: [\r\n PersonalConfigPopupComponent\r\n ]\r\n})\r\nexport class PersonalConfigPopupModule { }\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject, BehaviorSubject, Observable, Subscription } from 'rxjs';\r\nimport { ChildContent_PersonalStorageService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/child-content-personal-storage.service';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { map, tap } from 'rxjs/operators';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\n\r\n\r\nexport enum CaseType {\r\n Judgment = 0,\r\n LawRule = 1,\r\n JudicialInterpret = 2,\r\n Indictment = 3,\r\n}\r\n\r\nexport enum DisplayMode {\r\n Simple = 0,\r\n Full = 1,\r\n}\r\nexport enum OrderWayCourtLevel {\r\n None = 0,\r\n HightToLow = 1,\r\n LowToHigh = 2,\r\n}\r\nexport enum OrderWayJudgDate {\r\n None = 0,\r\n NewestTop = 1,\r\n OldestTop = 2,\r\n}\r\nexport enum OrderWayEditDate {\r\n NewestTop = 0,\r\n OldestTop = 1,\r\n}\r\nexport class PersonalConfig {\r\n storageHome: CaseType = CaseType.Judgment;\r\n displayMode: DisplayMode = DisplayMode.Simple;\r\n orderWayCourtLevel: OrderWayCourtLevel = OrderWayCourtLevel.None;\r\n orderWayJudgDate: OrderWayJudgDate = OrderWayJudgDate.None;\r\n orderWayEditDate: OrderWayEditDate = OrderWayEditDate.NewestTop;\r\n\r\n updateFromData(pc: PersonalConfig): void {\r\n this.storageHome = pc.storageHome;\r\n this.displayMode = pc.displayMode;\r\n this.orderWayCourtLevel = pc.orderWayCourtLevel;\r\n this.orderWayJudgDate = pc.orderWayJudgDate;\r\n this.orderWayEditDate = pc.orderWayEditDate;\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PersonalConfigPopupService implements OnDestroy {\r\n\r\n defaultPersonalConfig: PersonalConfig = new PersonalConfig();\r\n editPersonalConfig: PersonalConfig;\r\n personalConfig: PersonalConfig;\r\n personalConfig$: Subject = new Subject();\r\n\r\n isTeam: boolean = false;\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n constructor(\r\n private service: AppService\r\n ) {\r\n // this.defaultPersonalConfig = {\r\n // storageHome: CaseType.Judgment,\r\n // displayMode: DisplayMode.Simple,\r\n // orderWayCourtLevel: OrderWayCourtLevel.None,\r\n // orderWayJudgDate: OrderWayJudgDate.None,\r\n // orderWayEditDate: OrderWayEditDate.NewestTop,\r\n // } as PersonalConfig;\r\n\r\n // this.subscriptions.personalConfig = this.personalConfig$.subscribe(r => {\r\n // this.personalConfig = r;\r\n // });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n SubscriptionGroup.unsubscribeAll(this.subscriptions);\r\n }\r\n\r\n copyToEdit(): void {\r\n this.editPersonalConfig = JSON.parse(JSON.stringify(this.personalConfig));\r\n }\r\n // private setPersonalConfig(personalConfig: PersonalConfig): void {\r\n // this.personalConfig = personalConfig;\r\n // this.personalConfig$.next(personalConfig);\r\n // }\r\n updatePersonalConfig(personalConfig: PersonalConfig): void {\r\n this.personalConfig = personalConfig;\r\n // this.\r\n this.pushPersonalConfigObserver(personalConfig).subscribe(result => { });\r\n }\r\n getPersonalConfigObserver(): Observable {\r\n return this.service.get('user/personal_config');\r\n }\r\n pullTeamPersonalConfigObserver(): Observable {\r\n return this.service.get('teamapi/personal_config')\r\n .pipe(\r\n tap((personalConfig) => {\r\n console.log(personalConfig);\r\n if (personalConfig == null) {\r\n this.personalConfig = new PersonalConfig();\r\n } else {\r\n this.personalConfig = Object.assign(new PersonalConfig(), personalConfig);\r\n }\r\n\r\n // this.setPersonalConfig(r);\r\n // this.copyToEdit();\r\n this.personalConfig$.next(personalConfig);\r\n })\r\n );\r\n }\r\n pullPersonalConfigObserver(): Observable {\r\n return this.getPersonalConfigObserver()\r\n .pipe(\r\n tap((personalConfig) => {\r\n console.log(personalConfig);\r\n // this.setPersonalConfig(r);\r\n this.personalConfig = Object.assign(new PersonalConfig(), personalConfig);\r\n // this.copyToEdit();\r\n this.personalConfig$.next(personalConfig);\r\n })\r\n );\r\n }\r\n pushPersonalConfigObserver(personalConfig: PersonalConfig): Observable {\r\n return this.service.post('user/personal_config', personalConfig);\r\n }\r\n pushTeamPersonalConfigObserver(personalConfig: PersonalConfig): Observable {\r\n return this.service.post('teamapi/personal_config', personalConfig);\r\n }\r\n push(personalConfig: PersonalConfig): Subscription {\r\n return this.service.post('user/personal_config', personalConfig).subscribe();\r\n }\r\n\r\n\r\n // confirm(personalConfig: PersonalConfig): void {\r\n // this.setPersonalConfig(personalConfig);\r\n // this.push(personalConfig);\r\n // }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { PersonalConfigPopupService, PersonalConfig, DisplayMode } from \"../personal-config-popup.service\";\r\n\r\n@Component({\r\n selector: 'app-setting-content-display-mode',\r\n templateUrl: './setting-content-display-mode.component.html',\r\n styleUrls: ['./setting-content-display-mode.component.scss']\r\n})\r\nexport class SettingContentDisplayModeComponent implements OnInit {\r\n // @Input() personalConfig: PersonalConfig;\r\n\r\n displayMode: any = DisplayMode;\r\n\r\n get personalConfig(): PersonalConfig { return this.personalConfigPopupService.editPersonalConfig; }\r\n\r\n constructor(\r\n private personalConfigPopupService: PersonalConfigPopupService\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n selectMode(ev: any, mode: DisplayMode): void {\r\n if (!ev.target.checked) { return; }\r\n this.personalConfig.displayMode = mode;\r\n }\r\n\r\n reset(): void {\r\n this.personalConfig.displayMode =\r\n this.personalConfigPopupService.defaultPersonalConfig.displayMode;\r\n }\r\n}\r\n","
\r\n
\r\n
請設定清單的顯示模式
\r\n
恢復預設
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { PersonalConfig, OrderWayCourtLevel, OrderWayJudgDate, OrderWayEditDate, PersonalConfigPopupService } from '../personal-config-popup.service';\r\n\r\n@Component({\r\n selector: 'app-setting-content-order-way',\r\n templateUrl: './setting-content-order-way.component.html',\r\n styleUrls: ['./setting-content-order-way.component.scss']\r\n})\r\nexport class SettingContentOrderWayComponent implements OnInit {\r\n // @Input() personalConfig: PersonalConfig;\r\n\r\n get personalConfig(): PersonalConfig { return this.personalConfigPopupService.editPersonalConfig; }\r\n\r\n orderWayCourtLevel: any = OrderWayCourtLevel;\r\n orderWayJudgDate: any = OrderWayJudgDate;\r\n orderWayEditDate: any = OrderWayEditDate;\r\n\r\n constructor(\r\n private personalConfigPopupService: PersonalConfigPopupService\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n selectCourtLevel(ev: any, order: OrderWayCourtLevel): void {\r\n if (!ev.target.checked) { return; }\r\n this.personalConfig.orderWayCourtLevel = order;\r\n }\r\n selectJudgDate(ev: any, order: OrderWayJudgDate): void {\r\n if (!ev.target.checked) { return; }\r\n this.personalConfig.orderWayJudgDate = order;\r\n }\r\n selectEditDate(ev: any, order: OrderWayEditDate): void {\r\n if (!ev.target.checked) { return; }\r\n this.personalConfig.orderWayEditDate = order;\r\n }\r\n\r\n reset(): void {\r\n const defaultPersonalConfig = this.personalConfigPopupService.defaultPersonalConfig;\r\n this.personalConfig.orderWayCourtLevel = defaultPersonalConfig.orderWayCourtLevel;\r\n this.personalConfig.orderWayJudgDate = defaultPersonalConfig.orderWayJudgDate;\r\n this.personalConfig.orderWayEditDate = defaultPersonalConfig.orderWayEditDate;\r\n // this.courtLevel = '';\r\n // this.judgDate = '';\r\n // this.editDate = 'newest-top';\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
請設定清單顯示的排序方式
\r\n
恢復預設
\r\n
\r\n
\r\n
\r\n
\r\n
依法院等級
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
依裁判日期
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
依保存日期
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { PersonalConfig, CaseType, PersonalConfigPopupService } from '../personal-config-popup.service';\r\n\r\n@Component({\r\n selector: 'app-setting-content-storage-home',\r\n templateUrl: './setting-content-storage-home.component.html',\r\n styleUrls: ['./setting-content-storage-home.component.scss']\r\n})\r\nexport class SettingContentStorageHomeComponent implements OnInit {\r\n // @Input() personalConfig: PersonalConfig;\r\n\r\n storageHome: any = CaseType;\r\n get isTeam(): boolean { return this.personalConfigPopupService.isTeam; }\r\n get personalConfig(): PersonalConfig { return this.personalConfigPopupService.editPersonalConfig; }\r\n\r\n constructor(\r\n private personalConfigPopupService: PersonalConfigPopupService\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n selectType(ev: any, type: CaseType): void {\r\n if (!ev.target.checked) { return; }\r\n this.personalConfig.storageHome = type;\r\n }\r\n\r\n reset(): void {\r\n this.personalConfig.storageHome =\r\n this.personalConfigPopupService.defaultPersonalConfig.storageHome;\r\n }\r\n}\r\n","
\r\n
\r\n
請設定進入倉庫時的首頁
\r\n
恢復預設
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-phone-setting-popup',\r\n templateUrl: './phone-setting-popup.component.html',\r\n styleUrls: ['./phone-setting-popup.component.scss']\r\n})\r\nexport class PhoneSettingPopupComponent implements OnInit {\r\n confirm$: Subject = new Subject();\r\n link_phone: string;\r\n phone_number: string;\r\n tel_number: string;\r\n disableSubmitButton: boolean = true;\r\n\r\n telError: boolean = false;\r\n mobileError: boolean = false;\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n close(): void {\r\n this.matDialogRef.close();\r\n }\r\n confirm(): void {\r\n // if (!this.checkTelPhone()) {\r\n // this.tel_number = '';\r\n // }\r\n // if (!this.checkMobilePhone()) {\r\n // this.phone_number = '';\r\n // }\r\n this.confirm$.next();\r\n }\r\n checkInput(): void {\r\n this.disableSubmitButton = true;\r\n this.telError = false;\r\n this.mobileError = false;\r\n\r\n if (!this.checkTelPhone()) {\r\n this.telError = true;\r\n }\r\n if (!this.checkMobilePhone()) {\r\n this.mobileError = true;\r\n }\r\n if (\r\n (!this.tel_number && !this.phone_number)\r\n || this.checkTelPhone()\r\n || this.checkMobilePhone()\r\n ) {\r\n this.disableSubmitButton = false;\r\n }\r\n\r\n }\r\n checkTelPhone(): boolean {\r\n const regex = /^\\d.+\\d$/;\r\n return regex.test(this.tel_number) || !this.tel_number;\r\n }\r\n checkMobilePhone(): boolean {\r\n const regex = /^09\\d{8,8}$/;\r\n return regex.test(this.phone_number) || !this.phone_number;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
連絡電話
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
修改綁定帳號,請洽官方LINE@客服
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PhoneSettingPopupComponent } from './phone-setting-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PhoneSettingPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n exports: [PhoneSettingPopupComponent]\r\n})\r\nexport class PhoneSettingPopupModule { }\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { fromEvent, from, Observable, Subscription, merge } from 'rxjs';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-picture-crop-popup',\r\n templateUrl: './picture-crop-popup.component.html',\r\n styleUrls: ['./picture-crop-popup.component.scss']\r\n})\r\nexport class PictureCropPopupComponent implements OnInit {\r\n @ViewChild('imgDrager') imgDragerElement: ElementRef;\r\n\r\n pageIndex: number = 1;\r\n selectedFile: File;\r\n imageBase64String: string;\r\n imgPositionSource: { x: number, y: number } = { x: 0, y: 0 };\r\n imgPositionCurrent: { x: number, y: number } = { x: 0, y: 0 };\r\n imgPositionLast: { x: number, y: number } = { x: 0, y: 0 };\r\n mousedownPointSource: { x: number, y: number };\r\n mousedownPointCurrent: { x: number, y: number };\r\n imgPositionLimit: { top: number, left: number, right: number, bottom: number }\r\n = { bottom: 0, left: 0, right: 0, top: 0 };\r\n\r\n imgSourceSize: { w: number, h: number } = { w: 0, h: 0 };\r\n imgCropSquareSize: number = 230;\r\n imgSize: { w: number, h: number } = { w: 0, h: 0 };\r\n\r\n imgSizeRatioBase: number = 1;\r\n imgSizeRatioMax: number = 1;\r\n imgSizeRatioCurrent: number = 0;\r\n imgSizeRatio: number = 1;\r\n\r\n imgWidth: number;\r\n imgHeight: number;\r\n\r\n imgMoverStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n\r\n mousemoveSubscription: Subscription;\r\n mouseupSubscription: Subscription;\r\n\r\n sizeAdjustThumbStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n sizeAdjustThumbLeft: number = 0;\r\n\r\n cropImageBase64String: string;\r\n\r\n onConfirmCrop: (b64: string) => void;\r\n\r\n\r\n defaultPhotoList: string[] = [\r\n '1.jpg',\r\n '2.jpg',\r\n '3.jpg',\r\n '4.jpg',\r\n '5.jpg',\r\n ];\r\n\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n selectOfficialPhoto(photo: string): void {\r\n const img = new Image();\r\n img.onload = () => {\r\n if (!this.setImage(img)) {\r\n return;\r\n }\r\n\r\n this.cropImage(() => {\r\n this.pageIndex = 3;\r\n });\r\n };\r\n const imgUrl = `/assets/img/default_photo/${photo}`;\r\n img.src = imgUrl;\r\n }\r\n onImageFileChange1(inputEvent: Event): void {\r\n // console.log(inputEvent);\r\n const inputElement: HTMLInputElement = inputEvent.target as HTMLInputElement;\r\n\r\n this.selectedFile = null;\r\n this.imageBase64String = '';\r\n\r\n console.log(inputElement.files);\r\n const fileList: FileList = inputElement.files;\r\n if (fileList.length === 0) {\r\n return;\r\n }\r\n\r\n this.selectedFile = fileList[0];\r\n\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n const dataurl = fr.result as string;\r\n const img = new Image();\r\n img.src = dataurl;\r\n img.onload = () => {\r\n if (!this.setImage(img)) {\r\n return;\r\n }\r\n this.pageIndex = 2;\r\n };\r\n // this.setImage(dataurl);\r\n inputElement.value = '';\r\n };\r\n fr.readAsDataURL(this.selectedFile);\r\n }\r\n setImage(img: HTMLImageElement): boolean {\r\n console.log(img.width, img.height);\r\n if (img.width < this.imgCropSquareSize\r\n || img.height < this.imgCropSquareSize) {\r\n alert(`圖片尺寸太小,請上傳${this.imgCropSquareSize}x${this.imgCropSquareSize}像素以上的照片`);\r\n return false;\r\n }\r\n\r\n this.reset();\r\n\r\n this.setImageParameter(img);\r\n\r\n this.resizeImage(0);\r\n this.updateImageLimitPosition();\r\n\r\n const base64String: string = this.convertImageToBase64(img);\r\n this.imageBase64String = base64String;\r\n return true;\r\n }\r\n setImageParameter(img: HTMLImageElement): void {\r\n this.imgSourceSize = { w: img.width, h: img.height };\r\n this.imgSize = { w: img.width, h: img.height };\r\n\r\n\r\n // 圖片太窄->放大\r\n if (this.imgSize.w < this.imgCropSquareSize) {\r\n this.imgSizeRatioBase = this.imgCropSquareSize / this.imgSize.w;\r\n this.imgSize = {\r\n w: this.imgSourceSize.w * this.imgSizeRatioBase,\r\n h: this.imgSourceSize.h * this.imgSizeRatioBase,\r\n };\r\n }\r\n\r\n // 圖片太矮\r\n if (this.imgSize.h < this.imgCropSquareSize) {\r\n this.imgSizeRatioBase = this.imgCropSquareSize / this.imgSize.h;\r\n this.imgSize = {\r\n w: this.imgSourceSize.w * this.imgSizeRatioBase,\r\n h: this.imgSourceSize.h * this.imgSizeRatioBase,\r\n };\r\n }\r\n\r\n // 設定圖片最小比率\r\n let minSizeLength: number = 0;\r\n if (this.imgSize.w <= this.imgSize.h) {\r\n minSizeLength = this.imgSize.w;\r\n } else {\r\n minSizeLength = this.imgSize.h;\r\n }\r\n this.imgSizeRatioBase = this.imgCropSquareSize / minSizeLength;\r\n this.imgSizeRatioMax = 1 - this.imgSizeRatioBase;\r\n }\r\n convertImageToBase64(img: HTMLImageElement): string {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n ctx.drawImage(img, 0, 0);\r\n const dataUrl = canvas.toDataURL();\r\n return dataUrl;\r\n }\r\n\r\n\r\n // setImage(base64String: string): void {\r\n // const img = document.createElement('img');\r\n // img.onload = () => {\r\n // console.log(img.width, img.height);\r\n // if (img.width < this.imgCropSquareSize\r\n // || img.height < this.imgCropSquareSize) {\r\n // alert(`圖片尺寸太小,請上傳${this.imgCropSquareSize}x${this.imgCropSquareSize}像素以上的照片`);\r\n // return;\r\n // }\r\n // this.reset();\r\n // this.setImageParameter(img);\r\n // this.resizeImage(0);\r\n // this.updateImageLimitPosition();\r\n // this.imageBase64String = base64String;\r\n // this.pageIndex = 2;\r\n // };\r\n // img.src = base64String;\r\n // }\r\n\r\n resizeImage(ratio: number): void {\r\n const resultRatio: number = this.imgSizeRatioBase + ratio;\r\n // if (resultRatio > this.imgSizeRatioMax) {\r\n // resultRatio = this.imgSizeRatioMax;\r\n // }\r\n // this.imgSizeRatioCurrent = resultRatio;\r\n // console.log('ratio:', ratio);\r\n\r\n const imgSize = {\r\n w: this.imgSourceSize.w * resultRatio,\r\n h: this.imgSourceSize.h * resultRatio,\r\n };\r\n\r\n this.imgSize = imgSize;\r\n\r\n this.imgWidth = this.imgSize.w;\r\n this.imgHeight = this.imgSize.h;\r\n }\r\n updateAdjustThumbPosition(): void {\r\n const barWidth: number = 300;\r\n const ratioPercent = this.imgSizeRatioCurrent / this.imgSizeRatioMax;\r\n const pos = ratioPercent * barWidth;\r\n this.sizeAdjustThumbLeft = pos;\r\n\r\n this.sizeAdjustThumbStyle.left = `${this.sizeAdjustThumbLeft}px`;\r\n }\r\n updateMousedownPoint(e: MouseEvent): void {\r\n e.preventDefault();\r\n this.mousedownPointSource = {\r\n x: e.screenX,\r\n y: e.screenY\r\n };\r\n console.log(this.mousedownPointSource);\r\n if (this.mousemoveSubscription != null) {\r\n this.mousemoveSubscription.unsubscribe();\r\n this.mousemoveSubscription = null;\r\n }\r\n if (this.mouseupSubscription != null) {\r\n this.mouseupSubscription.unsubscribe();\r\n this.mouseupSubscription = null;\r\n }\r\n this.mousemoveSubscription = fromEvent(document, 'mousemove')\r\n .subscribe((me: MouseEvent) => {\r\n if (me.buttons !== 1) {\r\n console.log('mouse up');\r\n this.mousemoveSubscription.unsubscribe();\r\n this.mousemoveSubscription = null;\r\n if (this.imgPositionLast) {\r\n this.imgPositionSource = this.imgPositionLast;\r\n }\r\n return;\r\n }\r\n\r\n this.mousedownPointCurrent = {\r\n x: me.screenX,\r\n y: me.screenY\r\n };\r\n this.imgPositionCurrent.x =\r\n this.imgPositionSource.x\r\n + this.mousedownPointCurrent.x\r\n - this.mousedownPointSource.x;\r\n this.imgPositionCurrent.y =\r\n this.imgPositionSource.y\r\n + this.mousedownPointCurrent.y\r\n - this.mousedownPointSource.y;\r\n\r\n this.updateImageLimitPosition();\r\n\r\n this.imgPositionLast = {\r\n x: this.imgPositionCurrent.x,\r\n y: this.imgPositionCurrent.y\r\n };\r\n });\r\n }\r\n\r\n updateImageLimitPosition(): void {\r\n const hw = this.imgSize.w / 2;\r\n const hh = this.imgSize.h / 2;\r\n const halfLimitLength = this.imgCropSquareSize / 2;\r\n const currentImgTop = this.imgPositionCurrent.y - hh;\r\n if (currentImgTop > -halfLimitLength) {\r\n // 圖片太下面,回上\r\n const overLength = currentImgTop + halfLimitLength;\r\n this.imgPositionCurrent.y -= overLength;\r\n }\r\n\r\n const currentImgBottom = this.imgPositionCurrent.y + hh;\r\n if (currentImgBottom < halfLimitLength) {\r\n // 圖片太上面,回下\r\n const overLength = halfLimitLength - currentImgBottom;\r\n this.imgPositionCurrent.y += overLength;\r\n }\r\n\r\n const currentImgLeft = this.imgPositionCurrent.x - hw;\r\n if (currentImgLeft > -halfLimitLength) {\r\n // 圖片左邊緣太右邊,回左\r\n const overLength = currentImgLeft + halfLimitLength;\r\n this.imgPositionCurrent.x -= overLength;\r\n }\r\n\r\n const currentImgRight = this.imgPositionCurrent.x + hw;\r\n if (currentImgRight < halfLimitLength) {\r\n // 圖片右邊緣太左邊,回右\r\n const overLength = halfLimitLength - currentImgRight;\r\n this.imgPositionCurrent.x += overLength;\r\n }\r\n\r\n this.imgMoverStyle.left = `${this.imgPositionCurrent.x}px`;\r\n this.imgMoverStyle.top = `${this.imgPositionCurrent.y}px`;\r\n }\r\n\r\n addRatio(): void {\r\n this.imgSizeRatioCurrent += 0.1;\r\n if (this.imgSizeRatioCurrent > this.imgSizeRatioMax) {\r\n this.imgSizeRatioCurrent = this.imgSizeRatioMax;\r\n }\r\n this.resizeImage(this.imgSizeRatioCurrent);\r\n this.updateImageLimitPosition();\r\n this.imgPositionSource = {\r\n x: this.imgPositionCurrent.x,\r\n y: this.imgPositionCurrent.y\r\n };\r\n this.updateAdjustThumbPosition();\r\n }\r\n subRatio(): void {\r\n this.imgSizeRatioCurrent -= 0.1;\r\n if (this.imgSizeRatioCurrent < 0) {\r\n this.imgSizeRatioCurrent = 0;\r\n }\r\n this.resizeImage(this.imgSizeRatioCurrent);\r\n this.updateImageLimitPosition();\r\n this.imgPositionSource = {\r\n x: this.imgPositionCurrent.x,\r\n y: this.imgPositionCurrent.y\r\n };\r\n this.updateAdjustThumbPosition();\r\n }\r\n dragSizeAdjustThumb(e: MouseEvent): void {\r\n e.preventDefault();\r\n // console.log(this.mousedownPointSource);\r\n if (this.mousemoveSubscription != null) {\r\n this.mousemoveSubscription.unsubscribe();\r\n this.mousemoveSubscription = null;\r\n }\r\n if (this.mouseupSubscription != null) {\r\n this.mouseupSubscription.unsubscribe();\r\n this.mouseupSubscription = null;\r\n }\r\n this.mousemoveSubscription = fromEvent(document, 'mousemove')\r\n .subscribe((me: MouseEvent) => {\r\n if (me.buttons !== 1) {\r\n // console.log('mouse up');\r\n this.mousemoveSubscription.unsubscribe();\r\n this.mousemoveSubscription = null;\r\n if (this.imgPositionLast) {\r\n this.imgPositionSource = this.imgPositionLast;\r\n }\r\n return;\r\n }\r\n const min = 0;\r\n const max = 300;\r\n let resultLeft = this.sizeAdjustThumbLeft + me.movementX;\r\n if (resultLeft < min) {\r\n resultLeft = min;\r\n } else if (resultLeft > max) {\r\n resultLeft = max;\r\n }\r\n\r\n this.imgSizeRatioCurrent = this.imgSizeRatioMax * (resultLeft / max);\r\n this.resizeImage(this.imgSizeRatioCurrent);\r\n this.updateImageLimitPosition();\r\n this.imgPositionLast = {\r\n x: this.imgPositionCurrent.x,\r\n y: this.imgPositionCurrent.y\r\n };\r\n this.updateAdjustThumbPosition();\r\n });\r\n }\r\n setSizeAdjustThumbPosition(e: MouseEvent): void {\r\n console.log(e);\r\n const min = 0;\r\n const max = 300;\r\n const resultLeft = e.offsetX;\r\n this.imgSizeRatioCurrent = this.imgSizeRatioMax * (resultLeft / max);\r\n this.resizeImage(this.imgSizeRatioCurrent);\r\n this.updateImageLimitPosition();\r\n this.updateAdjustThumbPosition();\r\n }\r\n rotateImageLeft(): void {\r\n this.rotateImage(-90);\r\n }\r\n rotateImageRight(): void {\r\n this.rotateImage(90);\r\n }\r\n rotateImage(dreg: number): void {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n // ctx.setTransform(1, 0, 0, 1, 0, 0);\r\n const _img = new Image();\r\n _img.onload = () => {\r\n // canvas['_tempImg'] = _img;\r\n // canvas['ctx'] = ctx;\r\n canvas.width = _img.height;\r\n canvas.height = _img.width;\r\n if (dreg < 0) {\r\n ctx.translate(0, _img.width);\r\n } else {\r\n ctx.translate(_img.height, 0);\r\n }\r\n\r\n ctx.rotate(dreg * Math.PI / 180);\r\n // ctx.rotate(90);\r\n ctx.drawImage(_img, 0, 0);\r\n\r\n const base64String = canvas.toDataURL();\r\n const img = new Image();\r\n img.src = base64String;\r\n img.onload = () => {\r\n // this.setImage(base64String);\r\n this.setImage(img);\r\n };\r\n };\r\n _img.src = this.imageBase64String;\r\n }\r\n\r\n\r\n reset(): void {\r\n this.imgMoverStyle = {} as CSSStyleDeclaration;\r\n this.imgSizeRatio = 1;\r\n this.imgSizeRatioBase = 1;\r\n this.imgSizeRatioCurrent = 0;\r\n this.imgWidth = null;\r\n this.imgHeight = null;\r\n this.sizeAdjustThumbStyle = {} as CSSStyleDeclaration;\r\n this.sizeAdjustThumbLeft = 0;\r\n }\r\n cropImage(callback?: () => void): void {\r\n const canvas = document.createElement('canvas');\r\n // const canvas = document.getElementById('test-canvas') as HTMLCanvasElement;\r\n const ctx = canvas.getContext('2d');\r\n ctx.setTransform(1, 0, 0, 1, 0, 0);\r\n ctx.clearRect(0, 0, 65535, 65535);\r\n // const img = this.imgDragerElement.nativeElement;\r\n const img = new Image();\r\n img.src = this.imageBase64String;\r\n img.onload = () => {\r\n img.width = this.imgWidth;\r\n img.height = this.imgHeight;\r\n\r\n canvas.width = this.imgCropSquareSize;\r\n canvas.height = this.imgCropSquareSize;\r\n // const leftTopX = (img.width / 2) + this.imgPositionLast.x - (this.imgCropSquareSize / 2);\r\n let leftTopX = (img.width / 2) - this.imgPositionLast.x - (this.imgCropSquareSize / 2);\r\n if (leftTopX < 0) {\r\n leftTopX = 0;\r\n }\r\n let leftTopY = (img.height / 2) - this.imgPositionLast.y - (this.imgCropSquareSize / 2);\r\n if (leftTopY < 0) {\r\n leftTopY = 0;\r\n }\r\n // const cropOnImageStartX = this.imgPositionLast.x - (this.imgCropSquareSize / 2);\r\n console.log(img.width, img.height, this.imgPositionLast, leftTopX, leftTopY);\r\n ctx.drawImage(img, -leftTopX, -leftTopY, img.width, img.height);\r\n\r\n const base64String = canvas.toDataURL('image/jpeg', 1.0);\r\n this.cropImageBase64String = base64String;\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n }\r\n confirmCrop(): void {\r\n this.cropImage(() => {\r\n this.pageIndex = 3;\r\n });\r\n }\r\n\r\n confirmCropResult(): void {\r\n if (this.onConfirmCrop) {\r\n this.onConfirmCrop(this.cropImageBase64String);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
上傳照片
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
選擇官方提供的照片
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
取消
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
-
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
+
\r\n
\r\n
\r\n
\r\n
\r\n
確定
\r\n \r\n
取消
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
確定照片
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PictureCropPopupComponent } from './picture-crop-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PictureCropPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [PictureCropPopupComponent]\r\n})\r\nexport class PictureCropPopupModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PipeHighlightPipe } from './pipe-highlight.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [PipeHighlightPipe],\r\n exports: [PipeHighlightPipe]\r\n})\r\nexport class PipeHighlightModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SafeHtml, DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'highlight'\r\n})\r\nexport class PipeHighlightPipe implements PipeTransform {\r\n constructor(public sanitizer: DomSanitizer) {\r\n }\r\n transform(text: string, search, color?: string, enable?: boolean): SafeHtml {\r\n if (search && text && (enable == null || enable === true)) {\r\n let pattern = search.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\r\n pattern = pattern.split(' ').filter((t) => {\r\n return t.length > 0;\r\n }).join('|');\r\n const regex = new RegExp(pattern, 'gi');\r\n\r\n let style = '';\r\n if (color) {\r\n style = 'style=\"color:' + color + ';\"';\r\n }\r\n\r\n return this.sanitizer.bypassSecurityTrustHtml(\r\n text.replace(regex, (match) => `${match}`)\r\n );\r\n\r\n } else {\r\n return text;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PipeSafeInnerhtmlPipe } from './pipe-safe-innerhtml.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [PipeSafeInnerhtmlPipe],\r\n exports: [PipeSafeInnerhtmlPipe],\r\n})\r\nexport class PipeSafeInnerhtmlModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeInnerHTML'\r\n})\r\nexport class PipeSafeInnerhtmlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) { }\r\n transform(html) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PipeSafeUrlPipe } from './pipe-safe-url.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [PipeSafeUrlPipe],\r\n exports: [PipeSafeUrlPipe],\r\n})\r\nexport class PipeSafeUrlModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeUrl'\r\n})\r\nexport class PipeSafeUrlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) { }\r\n transform(url) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { interval, Observable, timer } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\nimport { Guid } from '../guid';\r\nimport { MaterialHelper } from '../material-helper';\r\nimport { NetService } from '../net.service';\r\nimport { PayInfoOverTimeLimitPopupComponent } from '../pay-info-over-time-limit-popup/pay-info-over-time-limit-popup.component';\r\nimport { SaveStatus } from '../save-status/save-status';\r\nimport { Serializable } from '../serializable';\r\nimport { PlanStatus } from './plan';\r\n\r\n\r\nexport enum PlanStatusName {\r\n /** 使用者是免費方案,且已使用超過設定的免費體驗時間 */\r\n FreePlanOverTime,\r\n /** 購買的方案到期 */\r\n PlanDateExpired,\r\n /** 購買的方案可用時數已用盡 */\r\n OverPlanAvailableTime,\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PlanService {\r\n\r\n planOverMaxUsageTimePopup: MatDialogRef;\r\n planExpirePopup: MatDialogRef;\r\n overLayContainerElement: Element;\r\n planStatus: PlanStatus;\r\n\r\n type: 'desktop' | 'mobile' = 'desktop';\r\n\r\n constructor(\r\n private net: NetService\r\n ) { }\r\n\r\n\r\n // 取方案狀態\r\n pullPlanStatus(): Observable {\r\n return this.net.getRaw(`user/plan_status`)\r\n .pipe(\r\n map((v: any) => {\r\n const ps = Serializable.extend(new PlanStatus(), v);\r\n ps.plan_expire_date = new Date(Date.parse(ps.plan_expire_date.toString()));\r\n ps.save_status = SaveStatus.createFromResponse(v.save_status);\r\n\r\n this.planStatus = ps;\r\n\r\n return ps;\r\n })\r\n )\r\n }\r\n pullPlanStatusByTeam(team_id: string, member_id: string): Observable {\r\n return this.net.getRaw(`user/plan_status?team_id=${team_id}&member_id=${member_id}`)\r\n .pipe(\r\n map((v: any) => {\r\n const ps = Serializable.extend(new PlanStatus(), v);\r\n ps.plan_expire_date = new Date(Date.parse(ps.plan_expire_date.toString()));\r\n ps.save_status = SaveStatus.createFromResponse(v.save_status);\r\n\r\n this.planStatus = ps;\r\n\r\n return ps;\r\n })\r\n )\r\n }\r\n pullPlanStatusById2(id2: string): Observable {\r\n return this.net.getRaw(`user/plan_status?id2=${id2}`)\r\n .pipe(\r\n map((v: any) => {\r\n const ps = Serializable.extend(new PlanStatus(), v);\r\n ps.plan_expire_date = new Date(Date.parse(ps.plan_expire_date.toString()));\r\n ps.save_status = SaveStatus.createFromResponse(v.save_status);\r\n\r\n this.planStatus = ps;\r\n\r\n return ps;\r\n })\r\n )\r\n }\r\n\r\n checkPlanStatusName(): Observable {\r\n return this.pullPlanStatus()\r\n .pipe(\r\n map((ps: PlanStatus) => {\r\n // 使用者是免費方案,且已使用超過設定的免費體驗時間\r\n if (ps.IsFreePlan() && ps.IsFreeUsageTimeOver()) {\r\n return PlanStatusName.FreePlanOverTime;\r\n }\r\n /** 使用者是付費方案,可使用4800分的那種方案,\r\n * 且使用者沒把時間用完就方案到期\r\n * 或是商務、頭等艙這種沒使用時間限制,只是單純方案時間到期\r\n */\r\n else if (!ps.IsFreePlan() && ps.IsPlanExpire()) {\r\n return PlanStatusName.PlanDateExpired;\r\n }\r\n /** 使用者是付費方案,增加使用時間的那種,\r\n * 且使用者還在方案的期間中,就把使用時間用完\r\n */\r\n else if (!ps.IsFreePlan() && !ps.IsPlanExpire() && ps.IsFreeUsageTimeOver()) {\r\n return PlanStatusName.OverPlanAvailableTime;\r\n }\r\n\r\n return null;\r\n })\r\n )\r\n }\r\n checkPlanStatus(matDialog: MatDialog): Observable {\r\n return this.pullPlanStatus()\r\n .pipe(\r\n tap((ps: PlanStatus) => {\r\n if (ps.IsFreePlan()) {\r\n // 免費體驗到期\r\n if (ps.IsFreeUsageTimeOver()) {\r\n let eid = '';\r\n interval(1000).subscribe(() => {\r\n if (eid) {\r\n var pele = document.getElementById(eid);\r\n // console.log(pele);\r\n if (pele == null) {\r\n eid = '';\r\n }\r\n }\r\n if (!eid) {\r\n eid = this.openPlanOverMaxUsageTimePopup(matDialog);\r\n }\r\n });\r\n return;\r\n }\r\n } else {\r\n // 付費方案到期\r\n if (ps.IsPlanExpire()) {\r\n let eid = '';\r\n interval(1000).subscribe(() => {\r\n if (eid) {\r\n var pele = document.getElementById(eid);\r\n // console.log(pele);\r\n if (pele == null) {\r\n eid = '';\r\n }\r\n }\r\n if (!eid) {\r\n eid = this.openPlanExpirePopup(matDialog);\r\n }\r\n });\r\n return;\r\n } else {\r\n\r\n if (ps.IsFreeUsageTimeOver()) {\r\n let eid = '';\r\n interval(1000).subscribe(() => {\r\n if (eid) {\r\n var pele = document.getElementById(eid);\r\n // console.log(pele);\r\n if (pele == null) {\r\n eid = '';\r\n }\r\n }\r\n if (!eid) {\r\n eid = this.openPlanOverMaxUsageTimePopup2(matDialog);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n })\r\n )\r\n }\r\n /** 桌面版,免費體驗到期 */\r\n openPlanOverMaxUsageTimePopup(matDialog: MatDialog): string {\r\n if (this.planOverMaxUsageTimePopup != null) {\r\n this.planOverMaxUsageTimePopup.close();\r\n document.body.append(this.overLayContainerElement);\r\n }\r\n const dlRef = MaterialHelper.openDialog(() => matDialog.open(\r\n PayInfoOverTimeLimitPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '550px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n disableClose: true,\r\n }\r\n ));\r\n dlRef.componentInstance.enableFreeTimeExpire = true;\r\n dlRef.componentInstance.dynId = Guid.newGuid();\r\n dlRef.afterOpened().subscribe(() => {\r\n const overLayContainerElement = document.body.querySelector(':scope>.cdk-overlay-container');\r\n if (overLayContainerElement != null) {\r\n this.overLayContainerElement = overLayContainerElement;\r\n }\r\n });\r\n this.planOverMaxUsageTimePopup = dlRef;\r\n return dlRef.componentInstance.dynId;\r\n }\r\n /** 桌面版,付費方案到期,主要是頭等艙 */\r\n openPlanExpirePopup(matDialog: MatDialog): string {\r\n if (this.planExpirePopup != null) {\r\n this.planExpirePopup.close();\r\n }\r\n const dlRef = MaterialHelper.openDialog(() => matDialog.open(\r\n PayInfoOverTimeLimitPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '550px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n disableClose: true,\r\n }\r\n ));\r\n dlRef.componentInstance.enablePlanTimeExpire = true;\r\n dlRef.componentInstance.dynId = Guid.newGuid();\r\n dlRef.afterOpened().subscribe(() => {\r\n const overLayContainerElement = document.body.querySelector(':scope>.cdk-overlay-container');\r\n if (overLayContainerElement != null) {\r\n this.overLayContainerElement = overLayContainerElement;\r\n }\r\n });\r\n this.planExpirePopup = dlRef;\r\n return dlRef.componentInstance.dynId;\r\n }\r\n /** 桌面版,付費方案,但已超過設定的使用時間 */\r\n openPlanOverMaxUsageTimePopup2(matDialog: MatDialog): string {\r\n if (this.planOverMaxUsageTimePopup != null) {\r\n this.planOverMaxUsageTimePopup.close();\r\n document.body.append(this.overLayContainerElement);\r\n }\r\n const dlRef = MaterialHelper.openDialog(() => matDialog.open(\r\n PayInfoOverTimeLimitPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '550px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n disableClose: true,\r\n }\r\n ));\r\n dlRef.componentInstance.enableInPlanOver = true;\r\n dlRef.componentInstance.dynId = Guid.newGuid();\r\n dlRef.afterOpened().subscribe(() => {\r\n const overLayContainerElement = document.body.querySelector(':scope>.cdk-overlay-container');\r\n if (overLayContainerElement != null) {\r\n this.overLayContainerElement = overLayContainerElement;\r\n }\r\n });\r\n this.planOverMaxUsageTimePopup = dlRef;\r\n return dlRef.componentInstance.dynId;\r\n }\r\n}\r\n","import { AppCommonStatic } from \"projects/desktop/src/app/app-common-static\";\r\nimport { SaveStatus } from \"../save-status/save-status\";\r\n\r\nexport class PlanStatus {\r\n plan_job: string;\r\n plan_type: string;\r\n plan_start_date: Date | string;\r\n plan_expire_date: Date | string;\r\n usage_time_current: number;\r\n usage_time_max: number;\r\n save_status = {\r\n judgment_note_save_current: 0,\r\n lawRule_note_save_current: 0,\r\n judicialInterpret_note_save_current: 0,\r\n total_summary_save_current: 0,\r\n judgment_note_save_max: 0,\r\n lawRule_note_save_max: 0,\r\n judicialInterpret_note_save_max: 0,\r\n total_summary_save_max: 0,\r\n };\r\n static planJobName = {\r\n '1': '大學生',\r\n '2': '研究生',\r\n '3': '在職人',\r\n '4': '訪客',\r\n }\r\n get planJobName() { return PlanStatus.planJobName; }\r\n static planTypeName = {\r\n '1': '免費體驗',\r\n '2': '經濟艙',\r\n '3': '商務艙',\r\n '4': '頭等艙',\r\n '5': '訪客',\r\n }\r\n get planTypeName() { return PlanStatus.planTypeName; }\r\n \r\n IsPlanExpire(): boolean {\r\n return new Date() >= this.plan_expire_date;\r\n }\r\n IsFreePlan(): boolean {\r\n return this.plan_type == '1';\r\n }\r\n IsFreeUsageTimeOver(): boolean {\r\n return this.usage_time_current > this.usage_time_max;\r\n }\r\n getJobName(): string {\r\n return this.planJobName[this.plan_job];\r\n }\r\n getPlanStartDateString(): string {\r\n const dateTicks = Date.parse(this.plan_start_date.toString());\r\n return AppCommonStatic.convertTimeTickToTimeText3(dateTicks);\r\n }\r\n getPlanExpireDateString(): string {\r\n const dateTicks = Date.parse(this.plan_expire_date.toString());\r\n return AppCommonStatic.convertTimeTickToTimeText3(dateTicks);\r\n }\r\n}","export enum PopupCloseReason {\r\n ManuallyClose = 0,\r\n Submit = 1,\r\n}","import { Injectable, ComponentRef, ApplicationRef } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PopupManagerService {\r\n // serviceList: BasePopupService[] = [];\r\n list: ComponentRef[] = [];\r\n\r\n constructor(\r\n private appRef: ApplicationRef,\r\n ) { }\r\n\r\n open(component: ComponentRef): void {\r\n this.list.push(component);\r\n }\r\n getLastComponentRef(): any {\r\n const index = this.list.length - 1;\r\n return index > -1 ? this.list[index] : null;\r\n }\r\n closeLast(): boolean {\r\n if (this.list.length === 0) {\r\n return false;\r\n }\r\n\r\n const canCloseList = this.list.filter(c => {\r\n if (c.instance != null && c.instance.doNotUseLastClose) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n if (canCloseList.length === 0) {\r\n return false;\r\n }\r\n this.closeComponent(canCloseList[canCloseList.length - 1]);\r\n\r\n // this.list.splice(this.list.length - 1);\r\n\r\n return true;\r\n }\r\n closeComponent(component: ComponentRef): boolean {\r\n const comp = this.list.find(c => c === component);\r\n if (comp == null) {\r\n return false;\r\n }\r\n\r\n this.appRef.detachView(component.hostView);\r\n component.destroy();\r\n\r\n this.list.splice(this.list.length - 1);\r\n\r\n return true;\r\n }\r\n}\r\n","import { Component, OnInit, ElementRef, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { PrintConfig } from './print-config';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Serializable } from 'projects/lwlib/src/serializable';\r\n\r\n@Component({\r\n selector: 'app-print-config-popup',\r\n templateUrl: './print-config-popup.component.html',\r\n styleUrls: ['./print-config-popup.component.scss']\r\n})\r\nexport class PrintConfigPopupComponent extends BasePopup implements OnInit {\r\n\r\n isFileFulltext: boolean = false;\r\n printConfig: PrintConfig = new PrintConfig();\r\n note_id: string = '';\r\n url: () => string = () => '';\r\n get _url(): string { return this.url(); }\r\n\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n public dialogRef: MatDialogRef,\r\n public service: AppService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.loadSetting();\r\n }\r\n initPopup(): void {\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n // this.noteData = null;\r\n // this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n togglePrintRangeAll(): void {\r\n const selectAll = (this.printConfig.fulltext && this.printConfig.summary);\r\n this.printConfig.fulltext = !selectAll;\r\n this.printConfig.summary = !selectAll;\r\n\r\n this.saveSetting();\r\n }\r\n setFont(selected: boolean): void {\r\n this.printConfig.font = selected;\r\n this.saveSetting();\r\n }\r\n setRowNumber(selected: boolean): void {\r\n this.printConfig.rownumber = selected;\r\n this.saveSetting();\r\n }\r\n setHomePage(selected: boolean): void {\r\n this.printConfig.homepage = selected;\r\n this.saveSetting();\r\n }\r\n\r\n isDisablePrintButton(): boolean {\r\n return !this.printConfig.homepage\r\n && !this.printConfig.fulltext\r\n && !this.printConfig.summary;\r\n }\r\n\r\n cancel(): void {\r\n this.closePopup();\r\n }\r\n\r\n\r\n saveSetting(): void {\r\n const json = JSON.stringify(this.printConfig);\r\n localStorage.setItem('print_setting', json);\r\n }\r\n loadSetting(): void {\r\n const json = localStorage.getItem('print_setting');\r\n if (json) {\r\n const savedSetting = JSON.parse(json) as PrintConfig;\r\n Serializable.extendObjectFromResponseObject(this.printConfig, savedSetting);\r\n if (this.isFileFulltext) {\r\n this.printConfig.font = false;\r\n this.printConfig.rownumber = false;\r\n }\r\n }\r\n }\r\n\r\n\r\n openPrintWindow(): void {\r\n // const optionArray = [\r\n // this.printConfig.fulltext ? '1' : '0',\r\n // this.printConfig.summary ? '1' : '0',\r\n // this.printConfig.font ? '1' : '0',\r\n // this.printConfig.rownumber ? '1' : '0',\r\n // ];\r\n // const optionText: string = optionArray.join().replace(/,/g, '');\r\n\r\n // const url = 'judgment/print?note_id=' + this.note_id + '&option=' + optionText;\r\n // this.service.getText(url).subscribe(r => {\r\n // console.log(r);\r\n // });\r\n\r\n setTimeout(() => {\r\n this.dialogRef.close();\r\n }, 200);\r\n\r\n }\r\n}","
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
列印設定
\r\n
\r\n
\r\n
\r\n
經查其他瀏覽器(例如火狐、Safari)皆有相容性與支援性問題存在,導致本站列印功能異常,
請使用
\r\n Google\r\n Chrome 瀏覽器正常應用列印功能。\r\n
\r\n \r\n
\r\n
\r\n
倉庫清單(封面)
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
列印範圍
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
文字功能(字體、粗體、底線、變色、螢光筆)
\r\n
\r\n
\r\n \r\n \r\n
不包含
\r\n
\r\n
\r\n \r\n \r\n
包含
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
本文行號
\r\n
\r\n
\r\n \r\n \r\n
不包含
\r\n
\r\n
\r\n \r\n \r\n
包含
\r\n
\r\n
\r\n
\r\n
\r\n 預覽列印\r\n
預覽列印
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PrintConfigPopupComponent } from './print-config-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [PrintConfigPopupComponent],\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n FramePopupCloseModule,\r\n ]\r\n})\r\nexport class PrintConfigPopupModule { }\r\n","export class PrintConfig {\r\n fulltext: boolean = false;\r\n summary: boolean = false;\r\n font: boolean = false;\r\n rownumber: boolean = false;\r\n homepage: boolean = false;\r\n lawrule: boolean = true;\r\n lawrulestartnumber: string = '';\r\n lawrulestartsubnum: string = '';\r\n lawrulestopnumber: string = '';\r\n lawrulestopsubnum: string = '';\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'lib-private-case-popup',\r\n templateUrl: './private-case-popup.component.html',\r\n styleUrls: ['./private-case-popup.component.scss']\r\n})\r\nexport class PrivateCasePopupComponent implements OnInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n
特殊資訊
\r\n
\r\n
\r\n
\r\n
裁判不公開,無法提供內文資料
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PrivateCasePopupComponent } from './private-case-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PrivateCasePopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ]\r\n})\r\nexport class PrivateCasePopupModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-put-in-note-check-popup',\r\n templateUrl: './put-in-note-check-popup.component.html',\r\n styleUrls: ['./put-in-note-check-popup.component.scss']\r\n})\r\nexport class PutInNoteCheckPopupComponent implements OnInit {\r\n\r\n rootClass: string = '';\r\n title: string = '確認覆蓋';\r\n description: string = '確認覆蓋,共享倉庫的此筆記?';\r\n\r\n onConfirm: () => void;\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n clickConfirm(): void {\r\n if (this.onConfirm) {\r\n this.onConfirm();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
{{title}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{description}}
\r\n
\r\n
確定
\r\n
取消
\r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PutInNoteCheckPopupComponent } from './put-in-note-check-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PutInNoteCheckPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [PutInNoteCheckPopupComponent]\r\n})\r\nexport class PutInNoteCheckPopupModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { JudgmentService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/judgment.service';\r\nimport { JudicialInterpretService } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judicial-interpret/judicial-interpret.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ActionName } from '../action-name';\r\nimport { IndictmentService } from '../indictment/indictment.service';\r\nimport { LoadingIconService } from '../loading-icon/loading-icon.service';\r\nimport { MaterialHelper } from '../material-helper';\r\nimport { Notify } from '../notify/notify';\r\nimport { PutInNoteCheckPopupComponent } from '../put-in-note-check-popup/put-in-note-check-popup.component';\r\nimport { PutInNoteSuccessPopupComponent } from '../put-in-note-success-popup/put-in-note-success-popup.component';\r\nimport { NotePutInTeam } from '../team/note-put-in-team';\r\n\r\n@Component({\r\n selector: 'app-put-in-note-popup',\r\n templateUrl: './put-in-note-popup.component.html',\r\n styleUrls: ['./put-in-note-popup.component.scss']\r\n})\r\nexport class PutInNotePopupComponent implements OnInit {\r\n\r\n team_list: NotePutInTeam[] = [];\r\n selectedTeam: { [key: string]: boolean } = {};\r\n is_loading: boolean = false;\r\n get disableSubmit(): boolean {\r\n return this.team_list.filter(t => this.selectedTeam[t.team_id]).length === 0;\r\n }\r\n\r\n onSubmit: () => void;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public judgmentService: JudgmentService,\r\n private indictmentService: IndictmentService,\r\n private judicialInterpretService: JudicialInterpretService,\r\n private loadingIconService: LoadingIconService,\r\n private matDialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit() { }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n toggleTeamSelect(team: NotePutInTeam, ev: MouseEvent): void {\r\n if (this.checkCursorClickClassName(ev, 'download-note')) { return; }\r\n this.selectedTeam[team.team_id] = !this.selectedTeam[team.team_id];\r\n }\r\n getSelectedTeamList(): NotePutInTeam[] {\r\n return this.team_list.filter(team => this.selectedTeam[team.team_id]);\r\n }\r\n submit(): void {\r\n if (this.onSubmit) {\r\n this.onSubmit();\r\n }\r\n }\r\n\r\n\r\n authorDownload($ev: MouseEvent, notify: Notify, force: boolean = false): void {\r\n\r\n // 設定下載\r\n let downloadNoteObserver: (team_id: string, team_note_id: string, notify_id: string, force: boolean) => Observable = null;\r\n if (notify.data.note_type == 1) {\r\n downloadNoteObserver = (team_id: string, team_note_id: string, notify_id: string, force: boolean) =>\r\n this.judgmentService.downloadNoteFromTeam(team_id, team_note_id, notify_id, force);\r\n } else if (notify.data.note_type == 3) {\r\n downloadNoteObserver = (team_id: string, team_note_id: string, notify_id: string, force: boolean) =>\r\n this.judicialInterpretService.downloadNoteFromTeam(team_id, team_note_id, notify_id, force);\r\n } else if (notify.data.note_type == 4) {\r\n downloadNoteObserver = (team_id: string, team_note_id: string, notify_id: string, force: boolean) =>\r\n this.indictmentService.downloadNoteFromTeam(team_id, team_note_id, notify_id, force);\r\n }\r\n\r\n // 第一次非強制下載\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n downloadNoteObserver(notify.data.team_id, notify.data.team_note_id, notify.notify_id, false)\r\n .subscribe({\r\n next: (result: number) => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n // 複製成功\r\n if (result == 1) {\r\n // 顯示複製成功彈窗\r\n notify.data.is_open_downloaded = false;\r\n // this.updateNotifyListObserver().subscribe();\r\n this.openCopySuccessPopup();\r\n }\r\n // 倉庫存在相同案件, 需要確認覆蓋\r\n else if (result == 2) {\r\n this.openConfirmOverwritePopup(() => {\r\n this.loadingIconService.openFullScreenLoadingIcon(ActionName.CopyNote);\r\n downloadNoteObserver(notify.data.team_id, notify.data.team_note_id, notify.notify_id, true)\r\n .subscribe({\r\n next: (result2) => {\r\n this.loadingIconService.closeFullScreenLoadingIcon(ActionName.CopyNote);\r\n if (result2 == 1) {\r\n // 顯示複製成功彈窗\r\n notify.data.is_open_downloaded = false;\r\n // this.updateNotifyListObserver().subscribe();\r\n this.openCopySuccessPopup();\r\n } else {\r\n alert('下載失敗!');\r\n }\r\n }\r\n });\r\n });\r\n\r\n }\r\n // 其他錯誤\r\n else {\r\n alert('下載失敗!');\r\n }\r\n }\r\n });\r\n }\r\n openCopySuccessPopup(): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteSuccessPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const c = dlRef.componentInstance;\r\n c.description = '已置入筆記至個人倉庫';\r\n }\r\n openConfirmOverwritePopup(onConfirm: () => void): void {\r\n const dlRef = MaterialHelper.openDialog(() => this.matDialog.open(\r\n PutInNoteCheckPopupComponent,\r\n {\r\n panelClass: ['no-padding'],\r\n width: '95vw',\r\n maxWidth: '400px',\r\n maxHeight: document.body.clientHeight - 40,\r\n autoFocus: false,\r\n }\r\n ));\r\n const c = dlRef.componentInstance;\r\n c.title = '確認覆蓋';\r\n c.description = '確認覆蓋,個人倉庫的此筆記';\r\n c.onConfirm = () => {\r\n onConfirm();\r\n c.closePopup();\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n
選擇團隊
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{note_putin_team.team_name}}
\r\n
\r\n
\r\n
\r\n 上次置入:\r\n {{note_putin_team.time_text}}\r\n
\r\n
尚未置入
\r\n
\r\n
\r\n
\r\n
\r\n
置入
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
\r\n
您還沒有團隊呢,立即組隊吧!
\r\n \r\n
\r\n
創建團隊
\r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PutInNotePopupComponent } from './put-in-note-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PutInNotePopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [PutInNotePopupComponent]\r\n})\r\nexport class PutInNotePopupModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-put-in-note-success-popup',\r\n templateUrl: './put-in-note-success-popup.component.html',\r\n styleUrls: ['./put-in-note-success-popup.component.scss']\r\n})\r\nexport class PutInNoteSuccessPopupComponent implements OnInit {\r\n\r\n title: string = '置入成功';\r\n description: string = '已置入筆記至共享倉庫';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
{{title}}
\r\n \r\n
\r\n
\r\n
\r\n
{{description}}
\r\n
確定
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PutInNoteSuccessPopupComponent } from './put-in-note-success-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [PutInNoteSuccessPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [PutInNoteSuccessPopupComponent]\r\n})\r\nexport class PutInNoteSuccessPopupModule { }\r\n","import { Component, OnInit, HostListener, ElementRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { RecommendMember } from '../member/recommend-member';\r\nimport { MemberService } from '../member/member.service';\r\nimport { AppCommonService } from 'projects/desktop/src/app/app-common.service';\r\nimport { LoadingIconService } from '../loading-icon/loading-icon.service';\r\nimport { Action } from 'rxjs/internal/scheduler/Action';\r\nimport { ActionName } from 'projects/lwlib/src/action-name';\r\n\r\n@Component({\r\n selector: 'app-recommend-member-popup',\r\n templateUrl: './recommend-member-popup.component.html',\r\n styleUrls: ['./recommend-member-popup.component.scss']\r\n})\r\nexport class RecommendMemberPopupComponent extends BasePopup implements OnInit {\r\n\r\n title: string = '';\r\n passed: boolean = false;\r\n\r\n list: RecommendMember[] = [];\r\n\r\n loading: boolean = true;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private loadingIconService: LoadingIconService,\r\n private memberService: MemberService,\r\n private popupManagerService: PopupManagerService,\r\n public appCommonService: AppCommonService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n initPopup(title: string, passed: boolean): void {\r\n this.title = title;\r\n this.passed = passed;\r\n\r\n // const element = document.querySelector('.recommend-member-popup>.popup-window>.window-content>.list');\r\n // this.loadingIconService.openAreaLoadingIcon(ActionName.RecommendFriend, element);\r\n\r\n if (this.passed) {\r\n this.memberService.requestRecommendPassedMemberList().subscribe(list => {\r\n this.list = list;\r\n this.loading = false;\r\n });\r\n } else {\r\n this.memberService.requestRecommendMemberList().subscribe(list => {\r\n this.list = list;\r\n this.loading = false;\r\n // for (let i = 0; i < 100; i++) {\r\n // this.list.push(list[0]);\r\n // }\r\n });\r\n }\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n getRegisterTimeText(ticks: number): string {\r\n return this.appCommonService.convertTimeTickToTimeText2(ticks);\r\n }\r\n\r\n tipPosition(index: number): any {\r\n const style: any = {};\r\n if (index % 15 < 7) {\r\n style.left = 0;\r\n } else {\r\n style.right = 0;\r\n }\r\n return style;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
{{title}}
\r\n \r\n
\r\n
\r\n
\r\n
{{title+':'+list.length.toLocaleString()+'人'}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{member.nickname+'\\n申請日期 '+getRegisterTimeText(member.register_time)}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RecommendMemberPopupComponent } from './recommend-member-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [\r\n RecommendMemberPopupComponent\r\n ],\r\n exports: [\r\n RecommendMemberPopupComponent\r\n ]\r\n})\r\nexport class RecommendMemberPopupModule { }\r\n","import { Injectable, ComponentFactoryResolver, Injector, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { RelateLawRulePopupComponent } from './relate-law-rule-popup.component';\r\nimport { LawRuleSource } from '../law-rule/law-rule-source';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RelateLawRulePopupOpenerService {\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private appRef: ApplicationRef,\r\n private popupManagerService: PopupManagerService\r\n ) { }\r\n\r\n buildPopup(): ComponentRef {\r\n const component = this.componentFactoryResolver\r\n .resolveComponentFactory(RelateLawRulePopupComponent)\r\n .create(this.injector);\r\n\r\n component.instance.componentRef = component;\r\n\r\n component.location.nativeElement.setAttribute('popup', '');\r\n document.body.appendChild(component.location.nativeElement);\r\n\r\n this.appRef.attachView(component.hostView);\r\n\r\n return component;\r\n }\r\n\r\n openPopup(list: LawRuleSource[]): ComponentRef {\r\n const component = this.buildPopup();\r\n\r\n component.instance.onAfterContentInit$.subscribe(() => {\r\n const instance = component.instance;\r\n instance.initPopup(list);\r\n });\r\n\r\n this.popupManagerService.open(component);\r\n return component;\r\n }\r\n}\r\n","import { Component, OnInit, ElementRef, HostListener, ViewChildren, QueryList, ViewChild } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { LawSystemSource } from '../law-rule/law-system-source';\r\nimport { LawArticleBlock } from '../law-article-list/law-article-block';\r\nimport { LawRuleSource } from '../law-rule/law-rule-source';\r\nimport { LawRule } from '../law-rule/law-rule';\r\nimport { LawArticleListComponent } from '../law-article-list/law-article-list.component';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { of } from 'rxjs';\r\nimport { concatMap, delay } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-relate-law-rule-popup',\r\n templateUrl: './relate-law-rule-popup.component.html',\r\n styleUrls: ['./relate-law-rule-popup.component.scss']\r\n})\r\nexport class RelateLawRulePopupComponent extends BasePopup implements OnInit {\r\n @ViewChildren(LawArticleListComponent) lawArticleListComponents: QueryList;\r\n @ViewChild('goTopElement') goTopElement: ElementRef;\r\n list: LawRuleSource[] = [];\r\n lawRuleList: LawRule[] = [];\r\n blockList: { [key: string]: LawArticleBlock[] } = {};\r\n blockDict: { [key: string]: LawArticleBlock } = {};\r\n containerElement: HTMLElement;\r\n\r\n get containerScrollTop(): number {\r\n return this.containerElement ? this.containerElement.scrollTop : 0;\r\n }\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n public dialogRef: MatDialogRef,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n initPopup(list: LawRuleSource[]): void {\r\n console.log(this.dialogRef.id);\r\n // setTimeout(() => {\r\n // this.containerElement = document.getElementById(this.dialogRef.id);\r\n // this.containerElement.onscroll = () => this.updateGoTopButtonTop();\r\n // });\r\n this.dialogRef.afterOpened().subscribe(() => {\r\n this.containerElement = document.getElementById(this.dialogRef.id);\r\n this.containerElement.onscroll = () => this.updateGoTopButtonTop();\r\n this.updateGoTopButtonTop();\r\n });\r\n\r\n const initDelay: number = 0;\r\n const setupSubsc = of(1)\r\n .pipe(\r\n concatMap(v => {\r\n this.list = list;\r\n list.forEach(lrs => {\r\n const lawRule = LawRule.convertLawRuleSourceToLawRule(lrs);\r\n this.lawRuleList.push(lawRule);\r\n // this.blockList[lrs.law_rule_id] = this.lawArticleListService.getLawArticleBlockFromLawRule(lawRule);\r\n });\r\n\r\n // 延遲,等待頁面渲染\r\n return of(true).pipe(delay(initDelay));\r\n }),\r\n concatMap(v => {\r\n // console.log(this.lawArticleListComponents);\r\n this.lawArticleListComponents.forEach((lac, i) => {\r\n // console.log(lac);\r\n lac.enableDate = false;\r\n lac.enableLawRuleName = true;\r\n lac.lawArticleListService.updateListFromLawRule(this.lawRuleList[i]);\r\n lac.lawArticleListService.list.forEach(b => {\r\n this.blockDict[b.lawSystem.source.law_system_id2] = b;\r\n });\r\n lac.setupList(lac.lawArticleListService.list);\r\n // 設定點擊事件\r\n lac.lawArticleListService.selectedLawArticleBlock$.subscribe((lawArticleBlock) => {\r\n this.lawArticleListComponents.forEach(_lac => {\r\n if (_lac.selectedLawArticleBlock) {\r\n if (_lac.selectedLawArticleBlock !== lawArticleBlock) {\r\n _lac.selectedLawArticleBlock.showHistory = false;\r\n _lac.selectedLawArticleBlock.showRelate = false;\r\n }\r\n }\r\n _lac.selectedLawArticleBlock = null;\r\n });\r\n lac.selectedLawArticleBlock = lawArticleBlock;\r\n });\r\n });\r\n\r\n console.log(this.blockDict);\r\n\r\n // 延遲,等待頁面渲染\r\n return of(true).pipe(delay(initDelay));\r\n }),\r\n concatMap(v => {\r\n\r\n // 延遲,等待頁面渲染\r\n return of(true).pipe(delay(initDelay));\r\n }),\r\n )\r\n .subscribe({\r\n next: v => { },\r\n complete: () => {\r\n setupSubsc.unsubscribe();\r\n }\r\n });\r\n\r\n\r\n // console.log(this.lawArticleListComponents);\r\n setTimeout(() => {\r\n\r\n\r\n });\r\n }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n this.dialogRef.close();\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // Esc\r\n if (ev.keyCode === 27) {\r\n this.popupManagerService.closeLast();\r\n }\r\n }\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('click', ['$event']) clickCheck(ev: MouseEvent): void {\r\n let selectedBlock: LawArticleBlock = null;\r\n let selectedLawArticleListComponent: LawArticleListComponent = null;\r\n this.lawArticleListComponents.forEach(lac => {\r\n if (lac.selectedLawArticleBlock) {\r\n selectedBlock = lac.selectedLawArticleBlock;\r\n selectedLawArticleListComponent = lac;\r\n }\r\n });\r\n if (selectedBlock\r\n && !this.checkCursorClickClassName(ev, 'law-article-item-block')\r\n && !this.checkCursorClickClassName(ev, 'law-system')) {\r\n selectedBlock.showHistory = false;\r\n selectedBlock.showRelate = false;\r\n selectedLawArticleListComponent.selectedLawArticleBlock = null;\r\n }\r\n }\r\n\r\n convertLawSystemToNumber(lawSystem: LawSystemSource): string {\r\n let t = lawSystem.law_system_number.toString();\r\n if (lawSystem.law_system_subnumber) {\r\n t += '-' + lawSystem.law_system_subnumber;\r\n }\r\n return t;\r\n }\r\n convertLawSystemListToNumberText(list: LawSystemSource[]): string {\r\n const text = list.map(v => {\r\n let t = v.law_system_number.toString();\r\n if (v.law_system_subnumber) {\r\n t += '-' + v.law_system_subnumber;\r\n }\r\n return t;\r\n })\r\n .join('、');\r\n return text;\r\n }\r\n\r\n\r\n scrollToNumber(lawSystem: LawSystemSource): void {\r\n this.blockDict[lawSystem.law_system_id2].scrollIntoView();\r\n this.blockDict[lawSystem.law_system_id2].clickBlock();\r\n }\r\n goTop(): void {\r\n this.containerElement.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n updateGoTopButtonTop(): void {\r\n if (!this.goTopElement) { return; }\r\n // console.log(this.containerScrollTop, this.containerElement.scrollTop);\r\n\r\n this.goTopElement.nativeElement.style.top =\r\n (this.containerElement.scrollTop + this.containerElement.clientHeight - 50)\r\n + 'px';\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
案件法條
\r\n
\r\n
\r\n
\r\n
法條總覽
\r\n
\r\n
\r\n
{{lawRule.law_rule_name}}:
\r\n \r\n
第\r\n
\r\n
0\">、
\r\n
{{convertLawSystemToNumber(item)}}\r\n
\r\n
\r\n 條
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
0\" (click)=\"goTop()\">\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RelateLawRulePopupComponent } from './relate-law-rule-popup.component';\r\nimport { LawArticleListModule } from '../law-article-list/law-article-list.module';\r\n\r\n@NgModule({\r\n imports: [\r\n LawArticleListModule,\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [RelateLawRulePopupComponent],\r\n exports: [RelateLawRulePopupComponent]\r\n})\r\nexport class RelateLawRulePopupModule { }\r\n","import { Component, OnInit, ElementRef, ViewChild, Output, EventEmitter, HostListener } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\n\r\n@Component({\r\n selector: 'app-rename-popup',\r\n templateUrl: './rename-popup.component.html',\r\n styleUrls: ['./rename-popup.component.scss'],\r\n // host: {\r\n // '(document:keydown)': 'checkKeydown($event)',\r\n // }\r\n})\r\nexport class RenamePopupComponent extends BasePopup implements OnInit {\r\n @ViewChild('input', { static: true }) inputElementRef: ElementRef;\r\n @Output() confirm: EventEmitter = new EventEmitter();\r\n // clickShowPopup: boolean = false;\r\n // noteData: any;\r\n sourceText: string;\r\n text: string;\r\n\r\n sourceText2: string;\r\n text2: string;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() { }\r\n initPopup(sourceText: string, sourceText2: string): void {\r\n // this.clickShowPopup = true;\r\n this.sourceText = sourceText;\r\n this.text = sourceText;\r\n\r\n this.sourceText2 = sourceText2;\r\n this.text2 = sourceText2;\r\n\r\n setTimeout(() => {\r\n this.inputElementRef.nativeElement.focus();\r\n this.inputElementRef.nativeElement.dispatchEvent(new CustomEvent('input'));\r\n }, 1);\r\n }\r\n clickConfirm(): void {\r\n const text1 = this.text || '';\r\n const text2 = this.text2 || '';\r\n this.confirm.emit([text1, text2]);\r\n }\r\n closePopup(): void {\r\n this.popupManagerService.closeComponent(this.componentRef);\r\n }\r\n checkKeydown(ev: KeyboardEvent): void {\r\n if (ev.keyCode === 27) {\r\n this.closePopup();\r\n }\r\n }\r\n enterKeydown(ev: KeyboardEvent): void {\r\n if (ev.keyCode !== 13) {\r\n return;\r\n }\r\n this.clickConfirm();\r\n }\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n if (ev.keyCode === 27 && !this.popupManagerService.closeLast()) {\r\n this.closePopup();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
重新命名
\r\n \r\n
\r\n
\r\n
\r\n
請輸入【題目】:
\r\n
{{(text||'').length}}/30
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
請輸入【案名】:
\r\n
{{(text2||'').length}}/20
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RenamePopupComponent } from './rename-popup.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [RenamePopupComponent],\r\n exports: [RenamePopupComponent]\r\n})\r\nexport class RenamePopupModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MemberService } from '../member/member.service';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-reward-point-tip-popup',\r\n templateUrl: './reward-point-tip-popup.component.html',\r\n styleUrls: ['./reward-point-tip-popup.component.scss']\r\n})\r\nexport class RewardPointTipPopupComponent implements OnInit {\r\n\r\n get unread_point(): number {\r\n return this.memberService.rewardPointInfo && this.memberService.rewardPointInfo.unread_point ?\r\n this.memberService.rewardPointInfo.unread_point :\r\n 0;\r\n }\r\n\r\n constructor(\r\n private memberService: MemberService,\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n closePopup(): void {\r\n this.matDialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
恭喜您獲得!
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
獎勵點數
{{unread_point}}
\r\n
\r\n
存入帳戶
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RewardPointTipPopupComponent } from './reward-point-tip-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [RewardPointTipPopupComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [RewardPointTipPopupComponent]\r\n})\r\nexport class RewardPointTipPopupModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'safeUrl' })\r\nexport class SafeUrlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) { }\r\n transform(url) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SaveLimit } from './save-limit';\r\n\r\n@Component({\r\n selector: 'lib-save-count-limit-popup',\r\n templateUrl: './save-count-limit-popup.component.html',\r\n styleUrls: ['./save-count-limit-popup.component.scss']\r\n})\r\nexport class SaveCountLimitPopupComponent implements OnInit {\r\n\r\n usage_time_max: number;\r\n judgment_note_save_max: number;\r\n lawRule_note_save_max: number;\r\n judicialInterpret_note_save_max: number;\r\n total_summary_save_max: number;\r\n\r\n // saveLimit: SaveLimit;\r\n onConfirm: (data: any) => void;\r\n loading: boolean = true;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n setup(\r\n usage_time_max: number,\r\n judgment_note_save_max: number,\r\n lawRule_note_save_max: number,\r\n judicialInterpret_note_save_max: number,\r\n total_summary_save_max: number,\r\n ): void {\r\n this.usage_time_max = usage_time_max;\r\n this.judgment_note_save_max = judgment_note_save_max;\r\n this.lawRule_note_save_max = lawRule_note_save_max;\r\n this.judicialInterpret_note_save_max = judicialInterpret_note_save_max;\r\n this.total_summary_save_max = total_summary_save_max;\r\n }\r\n\r\n confirm(): void {\r\n if (this.onConfirm != null) {\r\n this.onConfirm({\r\n usage_time_max: this.usage_time_max,\r\n judgment_note_save_max: this.judgment_note_save_max,\r\n lawRule_note_save_max: this.lawRule_note_save_max,\r\n judicialInterpret_note_save_max: this.judicialInterpret_note_save_max,\r\n total_summary_save_max: this.total_summary_save_max\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
免費體驗時間上限
\r\n \r\n
\r\n
\r\n
裁判+起訴書 筆記存量上限
\r\n \r\n
\r\n \r\n
\r\n
法規 筆記存量上限
\r\n \r\n
\r\n \r\n
\r\n
判解 筆記存量上限
\r\n \r\n
\r\n \r\n \r\n
\r\n
全部 摘要存量上限
\r\n \r\n
\r\n
\r\n
\r\n
\r\n說明:\r\n沒有設定過方案的會員\r\n預設都是算免費體驗\r\n\r\n這裡只做免費體驗設定\r\n其他方案設定要手動修改\r\nPermissionSettingPopupComponent.planSetting\r\n\r\n!!--欄位不能留空--!!\r\n!!--儲存即時生效--!!\r\n                
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SaveCountLimitPopupComponent } from './save-count-limit-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SaveCountLimitPopupComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ]\r\n})\r\nexport class SaveCountLimitPopupModule { }\r\n","export class SaveStatus {\r\n judgment_note_save_current: number;\r\n judgment_note_save_max: number;\r\n lawRule_note_save_current: number;\r\n lawRule_note_save_max: number;\r\n judicialInterpret_note_save_current: number;\r\n judicialInterpret_note_save_max: number;\r\n total_summary_save_current: number;\r\n total_summary_save_max: number;\r\n\r\n static createFromResponse(ss: any): SaveStatus {\r\n const saveStatus = new SaveStatus();\r\n saveStatus.judgment_note_save_current = ss.judgment_note_save_current;\r\n saveStatus.lawRule_note_save_current = ss.lawRule_note_save_current;\r\n saveStatus.judicialInterpret_note_save_current = ss.judicialInterpret_note_save_current;\r\n saveStatus.total_summary_save_current = ss.total_summary_save_current;\r\n saveStatus.judgment_note_save_max = ss.judgment_note_save_max;\r\n saveStatus.lawRule_note_save_max = ss.lawRule_note_save_max;\r\n saveStatus.judicialInterpret_note_save_max = ss.judicialInterpret_note_save_max;\r\n saveStatus.total_summary_save_max = ss.total_summary_save_max;\r\n return saveStatus;\r\n }\r\n\r\n /** 是否已達存量限制 */\r\n IsReachNoteSaveLimitJudgment(): boolean {\r\n return this.judgment_note_save_current >= this.judgment_note_save_max;\r\n }\r\n IsReachNoteSaveLimitLawRule(): boolean {\r\n return this.lawRule_note_save_current >= this.lawRule_note_save_max;\r\n }\r\n IsReachNoteSaveLimitJudicialInterpret(): boolean {\r\n return this.judicialInterpret_note_save_current >= this.judicialInterpret_note_save_max;\r\n }\r\n IsReachSummarySaveLimitTotal(): boolean {\r\n return this.total_summary_save_current >= this.total_summary_save_max;\r\n }\r\n\r\n /** 取數量百分比 */\r\n getJudgmentNoteSaveCountPercent(): number {\r\n let p = this.judgment_note_save_current / this.judgment_note_save_max;\r\n if (p > 1) {\r\n p = 1;\r\n }\r\n return p * 100;\r\n }\r\n getLawRuleNoteSaveCountPercent(): number {\r\n let p = this.lawRule_note_save_current / this.lawRule_note_save_max;\r\n if (p > 1) {\r\n p = 1;\r\n }\r\n return p * 100;\r\n }\r\n getJudicialInterpretNoteSaveCountPercent(): number {\r\n let p = this.judicialInterpret_note_save_current / this.judicialInterpret_note_save_max;\r\n if (p > 1) {\r\n p = 1;\r\n }\r\n return p * 100;\r\n }\r\n getTotalSummaryCountPercent(): number {\r\n let p = this.total_summary_save_current / this.total_summary_save_max;\r\n if (p > 1) {\r\n p = 1;\r\n }\r\n return p * 100;\r\n }\r\n\r\n /** 取上限文字 */\r\n getJudgmentNoteSaveMaxString(): string {\r\n if (this.judgment_note_save_max >= 99999999) {\r\n return '無限';\r\n }\r\n return this.judgment_note_save_max.toString();\r\n }\r\n getLawRuleNoteSaveMaxString(): string {\r\n if (this.lawRule_note_save_max >= 99999999) {\r\n return '無限';\r\n }\r\n return this.lawRule_note_save_max.toString();\r\n }\r\n getJudicialInterpretNoteSaveMaxString(): string {\r\n if (this.judicialInterpret_note_save_max >= 99999999) {\r\n return '無限';\r\n }\r\n return this.judicialInterpret_note_save_max.toString();\r\n }\r\n getTotalSummarySaveMaxString(): string {\r\n if (this.total_summary_save_max >= 99999999) {\r\n return '無限';\r\n }\r\n return this.total_summary_save_max.toString();\r\n }\r\n\r\n /** 取上限文字 */\r\n IsJudgmentNoteSaveUnlimit(): boolean {\r\n return (this.judgment_note_save_max >= 99999999);\r\n }\r\n IsLawRuleNoteSaveUnlimit(): boolean {\r\n return (this.lawRule_note_save_max >= 99999999);\r\n }\r\n IsJudicialInterpretNoteSaveUnlimit(): boolean {\r\n return (this.judicialInterpret_note_save_max >= 99999999);\r\n }\r\n IsTotalSummarySaveUnlimit(): boolean {\r\n return (this.total_summary_save_max >= 99999999);\r\n }\r\n}","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appScrollSmooth]'\r\n})\r\nexport class ScrollSmoothDirective {\r\n\r\n constructor() { }\r\n\r\n}\r\n","export enum SearcherLawRuleFulltextResultTypeId {\r\n Title = 0,\r\n Content = 1,\r\n Reason = 2,\r\n}\r\n","export class Serializable {\r\n static extendObjectFromResponseObject(to: T, from: any): any {\r\n for (const propName in from) {\r\n if (Object.getOwnPropertyDescriptor(from, propName)) {\r\n try {\r\n to[propName] = from[propName];\r\n } catch (error) { }\r\n }\r\n }\r\n return to;\r\n }\r\n static extend(to: T, from: any): T {\r\n return Serializable.extendObjectFromResponseObject(to, from) as T;\r\n }\r\n fromResponseObject(resp) {\r\n for (const propName in resp) {\r\n if (Object.getOwnPropertyDescriptor(resp, propName)) {\r\n try {\r\n this[propName] = resp[propName];\r\n } catch (error) { }\r\n }\r\n }\r\n return this;\r\n }\r\n}\r\n","import { Subscription } from 'rxjs';\r\n\r\nexport class SubscriptionGroup {\r\n [index: string]: Subscription\r\n\r\n static unsubscribeAll(group: SubscriptionGroup): void {\r\n for (const key in group) {\r\n if (group.hasOwnProperty(key)) {\r\n const sub = group[key];\r\n sub.unsubscribe();\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, ApplicationRef, ComponentRef } from '@angular/core';\r\nimport { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'app-succes-tip',\r\n templateUrl: './succes-tip.component.html',\r\n styleUrls: ['./succes-tip.component.scss'],\r\n animations: [\r\n trigger('successTip', [\r\n state('stop', style({ opacity: 0 })),\r\n state('play', style({ opacity: 1 }), { params: { time: '1000ms' } }),\r\n transition('*=>play', animate('{{time}}', keyframes([\r\n style({ opacity: 1 }),\r\n style({ opacity: 0 }),\r\n ]))),\r\n transition('play=>stop', style({ opacity: 0 })),\r\n ]),\r\n ]\r\n})\r\nexport class SuccesTipComponent implements OnInit {\r\n\r\n componentRef: ComponentRef;\r\n\r\n // 黑底白字提示\r\n successTipAnimationState: string = 'stop';\r\n successTipText: string = '';\r\n successTipTime: string = '1000ms';\r\n\r\n\r\n\r\n constructor(\r\n private appRef: ApplicationRef,\r\n ) { }\r\n\r\n ngOnInit() { }\r\n setTip(text: string, time: string = '1000ms'): void {\r\n this.successTipAnimationState = 'stop';\r\n this.successTipText = '';\r\n this.successTipTime = time;\r\n }\r\n play(text: string, time: string = '1000ms'): void {\r\n this.successTipAnimationState = 'stop';\r\n this.successTipText = '';\r\n this.successTipTime = time;\r\n setTimeout(() => {\r\n this.successTipText = text;\r\n this.successTipTime = time;\r\n this.successTipAnimationState = 'play';\r\n });\r\n }\r\n\r\n playEnd(): void {\r\n this.successTipAnimationState = 'stop';\r\n this.destoryComponent();\r\n }\r\n\r\n destoryComponent(): void {\r\n this.appRef.detachView(this.componentRef.hostView);\r\n this.componentRef.destroy();\r\n }\r\n}\r\n","
\r\n
{{successTipText}}
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SuccesTipComponent } from './succes-tip.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [SuccesTipComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [SuccesTipComponent]\r\n})\r\nexport class SuccesTipModule { }\r\n","export enum SummaryFilterDisplayModeId {\r\n All = 0,\r\n LawArticle = 1,\r\n}\r\n","import { Component, OnInit, ElementRef, HostListener, EventEmitter } from '@angular/core';\r\nimport { BasePopup } from '../base-popup/base-popup';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { RootNoteWorkLawRuleService } from 'projects/desktop/src/app/root/root-note-work-law-rule/root-note-work-law-rule.service';\r\nimport { SummaryType } from '../summary-list/summary-type';\r\nimport { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\nimport { DisplayModeItem } from './display-mode-item';\r\nimport { SummaryOwnerItem } from './summary-owner-item';\r\nimport { SummaryFilterSetting } from './summary-filter-setting';\r\nimport { SummaryFilterDisplayModeId } from './summary-filter-display-mode-id.enum';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-summary-filter-popup',\r\n templateUrl: './summary-filter-popup.component.html',\r\n styleUrls: ['./summary-filter-popup.component.scss']\r\n})\r\nexport class SummaryFilterPopupComponent implements OnInit {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n // private elementRef: ElementRef,\r\n // private popupManagerService: PopupManagerService,\r\n // private rootNoteWorkLawRuleService: RootNoteWorkLawRuleService\r\n ) {\r\n // super();\r\n }\r\n\r\n // displayModeList: DisplayModeItem[] = [\r\n // new DisplayModeItem(SummaryFilterDisplayModeId.All, 'arrow_refresh.png', '顯示全部'),\r\n // new DisplayModeItem(SummaryFilterDisplayModeId.LawArticle, 'relate-law.png', '選擇條文')\r\n // ];\r\n // summaryOwnerList;\r\n\r\n\r\n isShowAllSummary: boolean = true;\r\n isShowSelectedArticleSummary: boolean = false;\r\n\r\n summaryTypes: SummaryType[] = [];\r\n summaryTypeList: SummaryType[][] = [\r\n [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.WriterSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.LawSummary]]\r\n ],\r\n [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ProfessorSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.StudentSummary]]\r\n ],\r\n [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.GeneralSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PracticeSummary]]\r\n ],\r\n [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.GlossarySummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.HelpSummary]]\r\n ],\r\n [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.IssueSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ExamSummary]]\r\n ],\r\n [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ReviseSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.CaseSummary]]\r\n ],\r\n ];\r\n selectedType: { [key: string]: boolean } = {};\r\n\r\n isSelectedAll: boolean = true;\r\n deadLoopCheck: number = 0;\r\n\r\n onApply: () => void;\r\n afterOnInit: () => void;\r\n\r\n // get selectedAllType(): boolean {\r\n // return Object.keys(this.selectedType).every(key => this.selectedType[key]);\r\n // }\r\n\r\n\r\n // showDisplayMode: boolean = false;\r\n // showSummaryOwner: boolean = false;\r\n // selectedDisplayModeItem: DisplayModeItem;\r\n // selectedSummaryOwnerItem: SummaryOwnerItem;\r\n // save$: EventEmitter = new EventEmitter();\r\n\r\n\r\n ngOnInit() {\r\n this.summaryTypeList = [];\r\n let summaryTypeRow: SummaryType[] = [];\r\n Object.keys(SummaryTypeId).forEach(key => {\r\n // const id: number = parseInt(key, 10);\r\n if (isNaN(parseInt(key, 10))) {\r\n if (key !== SummaryTypeId[SummaryTypeId.All]) {\r\n summaryTypeRow.push(SummaryType.typeDict[key]);\r\n this.summaryTypes.push(SummaryType.typeDict[key]);\r\n }\r\n }\r\n if (summaryTypeRow.length === 4) {\r\n this.summaryTypeList.push(summaryTypeRow);\r\n summaryTypeRow = [];\r\n }\r\n });\r\n if (summaryTypeRow.length > 0) {\r\n this.summaryTypeList.push(summaryTypeRow);\r\n summaryTypeRow = [];\r\n }\r\n for (const st of this.summaryTypes) {\r\n this.selectedType[st.idText] = true;\r\n }\r\n\r\n if (this.afterOnInit) {\r\n this.afterOnInit();\r\n }\r\n\r\n this.updateIsSelectedAll();\r\n // console.log('comp init end');\r\n }\r\n // initPopup(setting: SummaryFilterSetting): void {\r\n // setting.selectedTypes.forEach(id => {\r\n // this.selectedType[SummaryTypeId[id]] = true;\r\n // });\r\n // this.selectedDisplayModeItem = this.displayModeList.find(v => v.id === setting.displayModeId);\r\n\r\n // console.log(this.displayModeList);\r\n // }\r\n closePopup(): void {\r\n // this.noteData = null;\r\n // this.popupManagerService.closeComponent(this.componentRef);\r\n this.dialogRef.close();\r\n }\r\n\r\n selectShowMode(mode: number): void {\r\n if (mode === 1) {\r\n this.isShowAllSummary = true;\r\n this.isShowSelectedArticleSummary = false;\r\n } else if (mode === 2) {\r\n this.isShowAllSummary = false;\r\n this.isShowSelectedArticleSummary = true;\r\n }\r\n }\r\n selectAll(): void {\r\n this.isSelectedAll = true;\r\n this.selectedType = {};\r\n for (const st of this.summaryTypes) {\r\n this.selectedType[st.idText] = true;\r\n }\r\n // this.deadLoopCheck++;\r\n // if (this.deadLoopCheck > 500) {\r\n // setTimeout(() => {\r\n // this.deadLoopCheck = 0;\r\n // }, 100);\r\n // // console.error('dead loop checked');\r\n // return;\r\n // }\r\n // // console.log('select all,', this.isSelectedAll);\r\n // if (this.isSelectedAll) {\r\n // for (const st of this.summaryTypes) {\r\n // this.selectedType[st.idText] = true;\r\n // }\r\n // } else {\r\n // for (const st of this.summaryTypes) {\r\n // this.selectedType[st.idText] = false;\r\n // }\r\n // }\r\n // // if (this.summaryTypes.every(s => this.selectedType[s.idText])) {\r\n // // for (const st of this.summaryTypes) {\r\n // // this.selectedType[st.idText] = false;\r\n // // }\r\n // // } else {\r\n // // for (const st of this.summaryTypes) {\r\n // // this.selectedType[st.idText] = true;\r\n // // }\r\n // // }\r\n\r\n // // this.updateSelect();\r\n }\r\n selectType(typeIdText: string): void {\r\n // console.log(typeIdText);\r\n // const isSelected = this.selectedType[typeIdText];\r\n this.isSelectedAll = false;\r\n this.selectedType = {};\r\n this.selectedType[typeIdText] = true;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n updateIsSelectedAll(): void {\r\n if (this.summaryTypes.every(s => this.selectedType[s.idText])) {\r\n this.isSelectedAll = true;\r\n } else {\r\n this.isSelectedAll = false;\r\n }\r\n }\r\n\r\n clickApply(): void {\r\n if (this.onApply) {\r\n this.onApply();\r\n }\r\n }\r\n clickCancel(): void {\r\n this.closePopup();\r\n }\r\n\r\n\r\n // @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n // // Esc\r\n // if (ev.keyCode === 27) {\r\n // this.popupManagerService.closeLast();\r\n // }\r\n // }\r\n\r\n\r\n // checkCursorClickClassName(ev: any, className: string): boolean {\r\n // const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n // return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n // return a.classList.contains(className);\r\n // });\r\n // }\r\n // @HostListener('click', ['$event']) checkClick(ev: KeyboardEvent) {\r\n // if (this.showDisplayMode\r\n // // && !this.checkCursorClickClassName(ev, 'display-mode-menu-button')\r\n // && (\r\n // !this.checkCursorClickClassName(ev, 'display-mode-menu-button')\r\n // && !this.checkCursorClickClassName(ev, 'display-mode-menu-list')\r\n // )\r\n // ) {\r\n // this.showDisplayMode = false;\r\n // }\r\n // }\r\n\r\n // toggleAllType(): void {\r\n // console.log('tog type');\r\n\r\n // const allSelected = !this.selectedAllType;\r\n // Object.keys(this.selectedType).forEach(key => {\r\n // this.selectedType[key] = allSelected;\r\n // });\r\n // }\r\n // toggleDisplayMenu(): void {\r\n // this.showDisplayMode = !this.showDisplayMode;\r\n // }\r\n // selectDisplayItem(item: DisplayModeItem): void {\r\n // this.selectedDisplayModeItem = item;\r\n // this.showDisplayMode = false;\r\n // }\r\n // updateFilter(): void {\r\n\r\n // }\r\n // save(): void {\r\n // const setting = new SummaryFilterSetting();\r\n // setting.selectedTypes = Object.keys(this.selectedType)\r\n // .filter(key => this.selectedType[key])\r\n // .map(key => SummaryTypeId[key]);\r\n // setting.displayModeId = this.selectedDisplayModeItem.id;\r\n // console.log(setting);\r\n\r\n // this.save$.emit(setting);\r\n\r\n // this.closePopup();\r\n // }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
篩選工具
\r\n \r\n
\r\n
\r\n
\r\n
清單顯示模式:
\r\n
\r\n
\r\n \r\n
顯示全部(本法規所有摘要清單)
\r\n
\r\n
\r\n \r\n
選擇條文(僅目標所屬摘要清單)
\r\n
\r\n
\r\n
推薦
\r\n
\r\n
\r\n
\r\n
\r\n
摘要種類(單選):
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
全部(預設)
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{summaryTypeItem.text}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
套用
\r\n
取消
\r\n
\r\n
\r\n
\r\n \r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SummaryFilterPopupComponent } from './summary-filter-popup.component';\r\nimport { MaskFullScreenModule } from '../mask-full-screen/mask-full-screen.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MaskFullScreenModule,\r\n FormsModule,\r\n FramePopupCloseModule,\r\n ],\r\n declarations: [SummaryFilterPopupComponent],\r\n exports: [SummaryFilterPopupComponent]\r\n})\r\nexport class SummaryFilterPopupModule { }\r\n","import { Summary } from './summary';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { SummaryListService } from './summary-list.service';\r\nimport { SummaryBlockComponent } from './summary-block/summary-block.component';\r\nexport class SummaryBlock {\r\n component: SummaryBlockComponent;\r\n list: Summary[] = [];\r\n\r\n /** 給紀錄對照摘要所屬區塊用ID */\r\n blockIndex: number = 0;\r\n\r\n get selected(): boolean {\r\n return this.summaryListService.selectedSummaryBlock === this;\r\n }\r\n get show(): boolean {\r\n return this.list.some(v => v.show);\r\n }\r\n\r\n\r\n blockWrapperViewId: string = '';\r\n\r\n private isBlockWrapperLoaded_: boolean;\r\n get isBlockWrapperLoaded(): boolean {\r\n if (this.isBlockWrapperLoaded_ == null) {\r\n return SummaryBlock.defaultLoadBlockWrapper;\r\n } else {\r\n return this.isBlockWrapperLoaded_;\r\n }\r\n }\r\n set isBlockWrapperLoaded(value) {\r\n this.isBlockWrapperLoaded_ = value;\r\n }\r\n\r\n static defaultLoadBlockWrapper: boolean = true;\r\n\r\n\r\n constructor(\r\n private summaryListService: SummaryListService\r\n ) {\r\n this.blockWrapperViewId = Guid.newGuid();\r\n }\r\n\r\n selectSummaryBlock(): void {\r\n this.summaryListService.selectSummaryBlock(this);\r\n }\r\n deleteSummaryBlock(): void {\r\n this.summaryListService.deleteSummaryBlock(this);\r\n }\r\n newSummaryAfter(summary: Summary): void {\r\n this.summaryListService.newSummartAfter(this, summary);\r\n // const index = this.list.findIndex(v => v === summary);\r\n // const newSummary = new Summary(this.summaryListService, this);\r\n // newSummary.elementId = Guid.newGuid();\r\n // this.list.splice((index + 1), 0, newSummary);\r\n // this.summaryListService.recalcAllSummarySn();\r\n\r\n // setTimeout(() => {\r\n // const summaryElement = document.getElementById(newSummary.elementId);\r\n // const titleElement = summaryElement.querySelector(`.content-row>.title>.text`);\r\n // const contentElement = summaryElement.querySelector(`.content-row>.content>.text`);\r\n // this.summaryListService.selectSummary(newSummary);\r\n // newSummary.enableEditContent(titleElement, titleElement, contentElement);\r\n\r\n // newSummary.elementId = '';\r\n // }, 1);\r\n }\r\n}\r\n","import { Component, OnInit, Input, HostBinding, ElementRef, HostListener, ViewChild, QueryList, ViewChildren } from '@angular/core';\r\nimport { Summary } from '../summary';\r\nimport { SummaryBlock } from '../summary-block';\r\nimport { SummaryListService } from '../summary-list.service';\r\nimport { SummaryComponent } from '../summary/summary.component';\r\n\r\n@Component({\r\n selector: 'app-summary-block',\r\n templateUrl: './summary-block.component.html',\r\n styleUrls: ['./summary-block.component.scss']\r\n})\r\nexport class SummaryBlockComponent implements OnInit {\r\n @Input() summaryBlock: SummaryBlock;\r\n @ViewChild('summaryBlockElementRef', { static: true }) summaryBlockElementRef: ElementRef;\r\n @ViewChildren(SummaryComponent) summaryComponentList: QueryList;\r\n\r\n constructor(\r\n public elementRef: ElementRef,\r\n private summaryListService: SummaryListService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.summaryBlock.component = this;\r\n }\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n checkCursorClickTarget(ev: any, element: Element): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n }\r\n // @HostListener('document:click', ['$event']) outSummaryClick(ev: MouseEvent): void {\r\n // if (this.summaryBlock.selected\r\n // && !this.checkCursorClickClassName(ev, 'summary-item')\r\n // && !this.checkCursorClickTarget(ev, this.elementRef.nativeElement)) {\r\n // this.summaryListService.selectSummaryBlock(null);\r\n // }\r\n // }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
","import { SummarySave } from './summary-save';\r\nimport { Summary } from './summary';\r\nimport { SummaryBlock } from './summary-block';\r\nimport { SummaryListService } from './summary-list.service';\r\nimport { LawArticleListService } from '../law-article-list/law-article-list.service';\r\nimport { SummaryTag } from './summary-tag';\r\nimport { SummaryType } from './summary-type';\r\nimport { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\nimport { SummaryCopy } from './summary-copy';\r\nimport { SummaryGistId } from './summary-gist-id.enum';\r\n\r\nexport class SummaryConvert {\r\n static saveListToBlockList(\r\n saves: SummarySave[],\r\n service: SummaryListService\r\n ): SummaryBlock[] {\r\n const summaryBlock: { [key: string]: SummaryBlock } = {};\r\n saves.forEach(s => {\r\n if (!summaryBlock[s.summary_block_index]) {\r\n const block = new SummaryBlock(service);\r\n block.blockIndex = s.summary_block_index;\r\n summaryBlock[s.summary_block_index] = block;\r\n }\r\n });\r\n\r\n const summaryBlockList: SummaryBlock[] = [];\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n saves.forEach(s => {\r\n const summary = new Summary(service, summaryBlock[s.summary_block_index]);\r\n // summary.summaryBlock = summaryBlock[s.summary_block_index];\r\n summary.index = s.summary_index;\r\n summary.ownerName = s.summary_owner_name;\r\n summary.ownerPicture = s.summary_owner_picture;\r\n summary.editTime = s.summary_edit_time;\r\n summary.titleText = s.summary_title;\r\n summary.contentText = s.summary_content;\r\n summary.summaryType = SummaryType.typeDict[SummaryTypeId[s.summary_type_id]];\r\n // summary.showContent = summary.summaryType != SummaryType.typeDict[SummaryTypeId[SummaryTypeId.IssueSummary]]\r\n if (s.summary_link_range) {\r\n const rs = s.summary_link_range.split(',');\r\n summary.linkStartTextIndex = parseInt(rs[0], 10);\r\n summary.linkEndTextIndex = parseInt(rs[1], 10);\r\n }\r\n if (s.summary_tag_list && s.summary_tag_list.length) {\r\n summary.tagList = s.summary_tag_list.map(t => {\r\n const st = new SummaryTag();\r\n st.text = t;\r\n return st;\r\n });\r\n }\r\n if (s.summary_gist_id > 0) {\r\n summary.gistId = s.summary_gist_id;\r\n }\r\n\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n block.list.forEach(s => {\r\n s.sn = 'B' + (s.summaryBlock.blockIndex + 1).toString().padStart(2, '0');\r\n if (s.index > 0) {\r\n s.sn += '-' + (s.index).toString();\r\n }\r\n });\r\n });\r\n\r\n return summaryBlockList;\r\n }\r\n static saveListToBlockListKeepSummaryId(\r\n saves: SummarySave[],\r\n service: SummaryListService\r\n ): SummaryBlock[] {\r\n const summaryBlock: { [key: string]: SummaryBlock } = {};\r\n saves.forEach(s => {\r\n if (!summaryBlock[s.summary_block_index]) {\r\n const block = new SummaryBlock(service);\r\n block.blockIndex = s.summary_block_index;\r\n summaryBlock[s.summary_block_index] = block;\r\n }\r\n });\r\n\r\n const summaryBlockList: SummaryBlock[] = [];\r\n Object.keys(summaryBlock).forEach(key => {\r\n summaryBlockList.push(summaryBlock[key]);\r\n });\r\n summaryBlockList.sort((a, b) => a.blockIndex - b.blockIndex);\r\n\r\n saves.forEach(s => {\r\n const summary = new Summary(service, summaryBlock[s.summary_block_index]);\r\n // summary.summaryBlock = summaryBlock[s.summary_block_index];\r\n summary.summaryId = s.summary_id;\r\n summary.index = s.summary_index;\r\n summary.ownerName = s.summary_owner_name;\r\n summary.ownerPicture = s.summary_owner_picture;\r\n summary.editTime = s.summary_edit_time;\r\n summary.titleText = s.summary_title;\r\n summary.contentText = s.summary_content;\r\n summary.summaryType = SummaryType.typeDict[SummaryTypeId[s.summary_type_id]];\r\n // summary.showContent = summary.summaryType != SummaryType.typeDict[SummaryTypeId[SummaryTypeId.IssueSummary]]\r\n if (s.summary_link_range) {\r\n const rs = s.summary_link_range.split(',');\r\n summary.linkStartTextIndex = parseInt(rs[0], 10);\r\n summary.linkEndTextIndex = parseInt(rs[1], 10);\r\n }\r\n if (s.summary_tag_list && s.summary_tag_list.length) {\r\n summary.tagList = s.summary_tag_list.map(t => {\r\n const st = new SummaryTag();\r\n st.text = t;\r\n return st;\r\n });\r\n }\r\n if (s.summary_gist_id > 0) {\r\n summary.gistId = s.summary_gist_id;\r\n }\r\n\r\n summary.summaryBlock.list.push(summary);\r\n });\r\n\r\n summaryBlockList.forEach(block => {\r\n block.list.sort((a, b) => a.index - b.index);\r\n block.list.forEach(s => {\r\n s.sn = 'B' + (s.summaryBlock.blockIndex + 1).toString().padStart(2, '0');\r\n if (s.index > 0) {\r\n s.sn += '-' + (s.index).toString();\r\n }\r\n });\r\n });\r\n\r\n return summaryBlockList;\r\n }\r\n static summaryToSave(summary: Summary): SummarySave {\r\n const save: SummarySave = new SummarySave();\r\n save.summary_id = summary.summaryId;\r\n save.summary_owner_member_id = summary.ownerMemberId;\r\n save.summary_block_index = summary.summaryBlock.blockIndex;\r\n save.summary_index = summary.index;\r\n save.summary_type_id = summary.summaryType.id;\r\n save.summary_title = summary.titleText;\r\n save.summary_content = summary.contentText;\r\n save.summary_add_time = summary.addTime;\r\n save.summary_edit_time = summary.editTime;\r\n save.summary_gist_id = summary.gistId;\r\n save.summary_open_copy = summary.isOpenCopy ? 1 : 0;\r\n save.summary_learn_training_title = summary.learnTrainingTitle;\r\n save.summary_learn_training_content = summary.learnTrainingContent;\r\n save.summary_learn_training_open_copy = summary.learnTrainingOpenCopy ? 1 : 0;\r\n\r\n if (summary.tagList\r\n && summary.tagList.length > 0) {\r\n summary.tagList.forEach(tag => {\r\n save.summary_tag_list.push(tag.text);\r\n });\r\n }\r\n\r\n save.summary_link_content_id = summary.linkedLawArticleContent ? summary.linkedLawArticleContent.contentId2 : '';\r\n save.summary_link_range = '';\r\n if (summary.linkedLawArticleContent || summary.linkedLineNumber) {\r\n save.summary_link_range = [summary.linkStartTextIndex, summary.linkEndTextIndex].join(',');\r\n }\r\n\r\n return save;\r\n }\r\n static saveToSummary(\r\n save: SummarySave,\r\n block: SummaryBlock,\r\n service: SummaryListService,\r\n lawArticleListService: LawArticleListService\r\n ): Summary {\r\n const summary = new Summary(service, block);\r\n summary.ownerMemberId = save.summary_owner_member_id;\r\n summary.ownerName = save.summary_owner_name;\r\n summary.ownerPicture = save.summary_owner_picture;\r\n summary.summaryId = save.summary_id;\r\n summary.index = save.summary_index;\r\n summary.titleText = save.summary_title;\r\n summary.contentText = save.summary_content;\r\n summary.addTime = save.summary_add_time;\r\n summary.editTime = save.summary_edit_time;\r\n summary.summaryType = SummaryType.typeDict[SummaryTypeId[save.summary_type_id]];\r\n summary.gistId = SummaryGistId.Summary;\r\n \r\n if (save.summary_gist_id > SummaryGistId.None) {\r\n summary.gistId = save.summary_gist_id;\r\n }\r\n\r\n // 摘要複製設定\r\n summary.isOpenCopy = save.summary_open_copy == 1;\r\n\r\n // 學習紀錄設定\r\n summary.learnTrainingTitle = save.summary_learn_training_title;\r\n summary.learnTrainingContent = save.summary_learn_training_content;\r\n summary.learnTrainingOpenCopy = save.summary_learn_training_open_copy == 1;\r\n\r\n if (save.summary_link_content_id) {\r\n const lawArticleContent = lawArticleListService.lawArticleId2ContentDict[save.summary_link_content_id];\r\n if (lawArticleContent) {\r\n summary.linkedLawArticleContent = lawArticleContent;\r\n const linkRange = save.summary_link_range.split(',').map(v => parseInt(v, 10));\r\n summary.linkStartTextIndex = linkRange[0];\r\n summary.linkEndTextIndex = linkRange[1];\r\n }\r\n } else if (save.summary_link_range) {\r\n const linkRange = save.summary_link_range.split(',').map(v => parseInt(v, 10));\r\n summary.linkStartTextIndex = linkRange[0];\r\n summary.linkEndTextIndex = linkRange[1];\r\n }\r\n if (save.summary_tag_list && save.summary_tag_list.length > 0) {\r\n save.summary_tag_list.forEach(v => {\r\n const summrayTag = new SummaryTag();\r\n summrayTag.text = v;\r\n summary.tagList.push(summrayTag);\r\n });\r\n }\r\n return summary;\r\n }\r\n static summaryToCopy(summary: Summary): SummaryCopy {\r\n const copySummary: SummaryCopy = new SummaryCopy();\r\n copySummary.summary_type_id = summary.summaryType.id;\r\n copySummary.summary_title = summary.titleText;\r\n copySummary.summary_content = summary.contentText;\r\n copySummary.summary_tag_list = summary.tagList.map(v => v.text);\r\n return copySummary;\r\n }\r\n}\r\n","import { CaseTypeId } from '../case-type/case-type-id.enum';\r\nimport { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\n\r\nexport class SummaryCopy {\r\n // source_case_type: CaseTypeId;\r\n // source_note_id: string;\r\n\r\n summary_type_id: SummaryTypeId;\r\n summary_title: string;\r\n summary_content: string;\r\n summary_tag_list: string[] = [];\r\n}\r\n","export enum SummaryGistId {\r\n None = 0,\r\n Summary = 1,\r\n Title = 2,\r\n Important = 3,\r\n Decree = 4,\r\n Analyze = 5,\r\n Conclusion = 6,\r\n}\r\n","import { SummaryGistId } from './summary-gist-id.enum';\r\n\r\nexport class SummaryGist {\r\n static Dict: { [key in keyof typeof SummaryGistId]: SummaryGist } = {\r\n None: new SummaryGist(SummaryGistId.None, '', ''),\r\n Summary: new SummaryGist(SummaryGistId.Summary, 'summary', '要旨'),\r\n Title: new SummaryGist(SummaryGistId.Title, 'title', '標題'),\r\n Important: new SummaryGist(SummaryGistId.Important, 'important', '重點'),\r\n Decree: new SummaryGist(SummaryGistId.Decree, 'decree', '法令'),\r\n Analyze: new SummaryGist(SummaryGistId.Analyze, 'analyze', '分析'),\r\n Conclusion: new SummaryGist(SummaryGistId.Conclusion, 'conclusion ', '結論'),\r\n }\r\n static Name: { [key in keyof typeof SummaryGistId]: string } = Object\r\n .entries(SummaryGist.Dict)\r\n .reduce((p: SummaryGist, c: any) => {\r\n p[c[0]] = c[1].name;\r\n return p;\r\n }, Object.create(SummaryGist.Dict.None));\r\n static Class: { [key in keyof typeof SummaryGistId]: string } = Object\r\n .entries(SummaryGist.Dict)\r\n .reduce((p: SummaryGist, c: any) => {\r\n p[c[0]] = c[1].class_;\r\n return p;\r\n }, Object.create(SummaryGist.Dict.None));\r\n static List: SummaryGist[] = Object.values(SummaryGist.Dict).filter(v => v.id != SummaryGistId.None);\r\n\r\n id: SummaryGistId;\r\n get idString(): string { return SummaryGistId[this.id]; };\r\n class_: string;\r\n name: string;\r\n\r\n constructor(\r\n id: SummaryGistId,\r\n class_: string,\r\n name: string\r\n ) {\r\n this.id = id;\r\n this.class_ = class_;\r\n this.name = name;\r\n }\r\n\r\n // constructor(\r\n // id: SummaryGistId,\r\n // class: string,\r\n // name: string\r\n // ){\r\n // this.id = id;\r\n // this.class = class;\r\n // this.name = name;\r\n // }\r\n}\r\n","import { Component, OnInit, HostListener, Input, ViewChild, ElementRef, ViewChildren, QueryList } from '@angular/core';\r\nimport { SummaryBlock } from './summary-block';\r\nimport { Summary } from './summary';\r\nimport { SummaryListService } from './summary-list.service';\r\nimport { SummaryType } from './summary-type';\r\nimport { SummarySpace } from './summary-space';\r\nimport { SummarySpaceTypeId } from './summary-space-type-id.enum';\r\nimport { interval, Subscription } from 'rxjs';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { SubscriptionGroup } from 'projects/lwlib/src/subscription-group';\r\nimport { SummaryBlockComponent } from './summary-block/summary-block.component';\r\nimport { SummaryGist } from './summary-gist';\r\n\r\n@Component({\r\n selector: 'app-summary-list',\r\n templateUrl: './summary-list.component.html',\r\n styleUrls: ['./summary-list.component.scss'],\r\n // encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SummaryListComponent implements OnInit {\r\n\r\n @Input() summaryTypeList: SummaryType[][] = [];\r\n @ViewChild('movingSummaryLineCanvas') movingSummaryLineCanvas: ElementRef;\r\n @ViewChild('summaryListElementRef', { static: true }) summaryListElementRef: ElementRef;\r\n @ViewChildren(SummaryBlockComponent) summaryBlockComponentList: QueryList;\r\n @ViewChildren('summaryBlockWrapperElement') summaryBlockWrapperElementList: QueryList>;\r\n\r\n get summaryBlockList(): SummaryBlock[] { return this.summaryListService.summaryBlockList; }\r\n // summaryBlockList: SummaryBlock[];\r\n selectedSummaryBlockElement: Element;\r\n selectedSummaryElement: Element;\r\n get selectedSummaryBlock(): SummaryBlock { return this.summaryListService.selectedSummaryBlock; }\r\n get selectedSummary(): Summary { return this.summaryListService.selectedSummary; }\r\n\r\n\r\n\r\n enableMovingSummary: boolean = false;\r\n mousePosition: { x: number, y: number } = {\r\n x: 0,\r\n y: 0\r\n };\r\n sideScrollSubscription: Subscription;\r\n lastSummarySpace: SummarySpace;\r\n\r\n subscriptions: SubscriptionGroup = {};\r\n\r\n\r\n\r\n\r\n\r\n constructor(\r\n public summaryListService: SummaryListService\r\n ) { }\r\n\r\n ngOnInit() {\r\n // console.log(SummaryGist.Dict);\r\n // console.log(SummaryGist.Name);\r\n // console.log(SummaryGist.Class);\r\n // console.log(SummaryGist.List);\r\n\r\n // this.summaryListService.summaryTypeList = SummaryListService.lawRuleSummaryTypeList;\r\n // const flatTypeList: SummaryType[] = [];\r\n // this.summaryListService.summaryTypeList.forEach(v1 => {\r\n // v1.forEach(v2 => {\r\n // flatTypeList.push(v2);\r\n // });\r\n // });\r\n // console.log(flatTypeList);\r\n // console.log(this.summaryListService);\r\n // this.summaryTypeList = this.summaryListService.lawRuleSummaryTypeList;\r\n console.log('init summary list');\r\n\r\n this.summaryListService.updateSummaryBlockView = () => {\r\n this.updateElementBlocksLoad();\r\n };\r\n\r\n this.subscriptions.movingSummary = this.summaryListService.movingSummary$.subscribe(m => {\r\n this.enableMovingSummary = (m != null);\r\n if (this.enableMovingSummary) {\r\n setTimeout(() => {\r\n this.setupMovingSummaryCanvas();\r\n });\r\n }\r\n });\r\n }\r\n setupMovingSummaryCanvas(): void {\r\n const canvasElement: HTMLCanvasElement = this.movingSummaryLineCanvas.nativeElement;\r\n const rect = canvasElement.getBoundingClientRect();\r\n canvasElement.width = rect.width;\r\n canvasElement.height = rect.height;\r\n\r\n // const scrollElement\r\n this.updateMovingSummarySpaceLine();\r\n\r\n\r\n\r\n // 設定拉條邊緣自動捲動\r\n if (this.sideScrollSubscription) {\r\n this.sideScrollSubscription.unsubscribe();\r\n this.sideScrollSubscription = null;\r\n }\r\n const scrollElement = ElementScroll.findParentScrollerElement(this.summaryListElementRef.nativeElement);\r\n const scroll_update_tick = 1000 / 60;\r\n const scrollTriggerSideLength = 30;\r\n const scrollSpeed = 1;\r\n // let scrollTickWait = 0;\r\n\r\n // const line_update_tick = 1000 / 30;\r\n // let lineTickWait = 0;\r\n\r\n // let prevTick = 0;\r\n // let nowTick = 0;\r\n // let pastTick = 0;\r\n // this.sideScrollSubscription = interval(scroll_update_tick)\r\n // .subscribe((i) => {\r\n // nowTick = performance.now();\r\n // pastTick = nowTick - prevTick;\r\n\r\n // scrollTickWait += pastTick;\r\n // lineTickWait += pastTick;\r\n\r\n // if (scroll_update_tick < scrollTickWait) {\r\n // scrollTickWait = 0;\r\n // const top = rect.top + scrollTriggerSideLength;\r\n // const bottom = rect.bottom - scrollTriggerSideLength;\r\n // if (this.mousePosition.y < top) {\r\n // scrollElement.scrollTop -= (scrollSpeed * (top - this.mousePosition.y));\r\n // } else if (this.mousePosition.y > bottom) {\r\n // scrollElement.scrollTop += (scrollSpeed * (this.mousePosition.y - bottom));\r\n // }\r\n // }\r\n // if (line_update_tick < lineTickWait) {\r\n // lineTickWait = 0;\r\n // this.updateMovingSummaryLine();\r\n // }\r\n\r\n // prevTick = nowTick;\r\n // });\r\n this.sideScrollSubscription = interval(scroll_update_tick)\r\n .subscribe(() => {\r\n // console.log(i);\r\n\r\n const top = rect.top + scrollTriggerSideLength;\r\n const bottom = rect.bottom - scrollTriggerSideLength;\r\n if (this.mousePosition.y < top) {\r\n scrollElement.scrollTop -= (scrollSpeed * (top - this.mousePosition.y));\r\n } else if (this.mousePosition.y > bottom) {\r\n scrollElement.scrollTop += (scrollSpeed * (this.mousePosition.y - bottom));\r\n }\r\n // this.updateMovingSummaryLine();\r\n });\r\n }\r\n updateMovingSummarySpaceLine(): void {\r\n if (!this.summaryListService.movingSummary) {\r\n return;\r\n }\r\n // const summaryList = this.summaryListService.getFlatSummaryList();\r\n const summaryList: Summary[] = [];\r\n // 過濾摘要清單\r\n this.summaryBlockList.filter(b => b.show).forEach(block => summaryList.push(...block.list.filter(s => !s.isNewSummary)));\r\n\r\n // 摘要位置訊息清單\r\n const summarySpaceList: SummarySpace[] = [];\r\n let movingSummarySpace: SummarySpace;\r\n summaryList.forEach(s => {\r\n const element = document.getElementById(s.elementId);\r\n const rect = element.getBoundingClientRect();\r\n const summarySpace = new SummarySpace();\r\n summarySpace.element = element;\r\n summarySpace.rect = rect;\r\n summarySpace.summary = s;\r\n summarySpace.isSelf = s === this.summaryListService.movingSummary;\r\n summarySpace.isFirst = s === s.summaryBlock.list[0];\r\n summarySpace.isLast = s === s.summaryBlock.list[s.summaryBlock.list.length - 1];\r\n summarySpace.isSameBlock = s.summaryBlock === this.summaryListService.movingSummary.summaryBlock;\r\n\r\n summarySpaceList.push(summarySpace);\r\n if (summarySpace.isSelf) {\r\n movingSummarySpace = summarySpace;\r\n }\r\n });\r\n // 照高度排序\r\n summarySpaceList.sort((a, b) => a.rect.top - b.rect.top);\r\n\r\n // 建立空間清單\r\n const listElement = (this.summaryListElementRef.nativeElement as HTMLElement);\r\n const _spaceList: SummarySpace[] = [];\r\n for (let i = 0; i < summarySpaceList.length; i++) {\r\n const ss = summarySpaceList[i];\r\n if (i === 0) {\r\n const _ss = new SummarySpace(ss);\r\n _ss.type = SummarySpaceTypeId.FirstBlockTopOutside;\r\n _ss.rect = {\r\n top: -65535,\r\n bottom: ss.rect.top,\r\n height: (ss.rect.top - -65535),\r\n left: ss.rect.left,\r\n right: ss.rect.right,\r\n width: ss.rect.width\r\n } as any;\r\n _spaceList.push(_ss);\r\n }\r\n\r\n if (ss.isSameBlock && movingSummarySpace.isFirst) {\r\n\r\n } else if (ss.isFirst && ss.isSelf) {\r\n // 摘要內\r\n const _ss1 = new SummarySpace(ss);\r\n _ss1.type = SummarySpaceTypeId.LastOutSide;\r\n _ss1.rect = {\r\n top: ss.blockRect.top,\r\n bottom: ss.blockRect.bottom,\r\n height: ss.blockRect.height,\r\n left: ss.blockRect.left,\r\n right: ss.blockRect.right,\r\n width: ss.blockRect.width\r\n } as any;\r\n _spaceList.push(_ss1);\r\n } else if (ss.isFirst && !ss.isSelf && ss.summary.summaryBlock.list.length === 1) {\r\n // 摘要內\r\n const _ss1 = new SummarySpace(ss);\r\n _ss1.type = SummarySpaceTypeId.SingleFirstInside;\r\n _ss1.rect = {\r\n top: ss.rect.top,\r\n bottom: ss.rect.bottom,\r\n height: ss.rect.height,\r\n left: ss.rect.left,\r\n right: ss.rect.right,\r\n width: ss.rect.width\r\n } as any;\r\n _spaceList.push(_ss1);\r\n } else if (ss.isFirst && !ss.isSelf && ss.summary.summaryBlock.list.length > 1) {\r\n // 摘要內\r\n const _ss1 = new SummarySpace(ss);\r\n _ss1.type = SummarySpaceTypeId.SingleFirstInside;\r\n _ss1.rect = {\r\n top: ss.rect.top,\r\n bottom: ss.rect.bottom - (ss.rect.height / 2),\r\n height: ss.rect.height / 2,\r\n left: ss.rect.left,\r\n right: ss.rect.right,\r\n width: ss.rect.width\r\n } as any;\r\n _spaceList.push(_ss1);\r\n // 摘要下邊緣\r\n const _ss2 = new SummarySpace(ss);\r\n _ss2.type = SummarySpaceTypeId.SingleFirstBottomInside;\r\n _ss2.rect = {\r\n top: ss.rect.bottom - (ss.rect.height / 2),\r\n bottom: ss.rect.bottom,\r\n height: (ss.rect.height / 2),\r\n left: ss.rect.left,\r\n right: ss.rect.right,\r\n width: ss.rect.width\r\n } as any;\r\n _spaceList.push(_ss2);\r\n } else {\r\n // 上邊緣\r\n const _ss1 = new SummarySpace(ss);\r\n _ss1.type = SummarySpaceTypeId.SingleChildTopInside;\r\n _ss1.rect = {\r\n top: ss.rect.top,\r\n bottom: ss.rect.top + (ss.rect.height / 2),\r\n height: (ss.rect.height / 2),\r\n left: ss.rect.left,\r\n right: ss.rect.right,\r\n width: ss.rect.width\r\n } as any;\r\n _spaceList.push(_ss1);\r\n // 摘要中\r\n const _ss2 = new SummarySpace(ss);\r\n _ss2.type = SummarySpaceTypeId.SingleChildInside;\r\n _ss2.rect = {\r\n top: ss.rect.top + (ss.rect.height / 2),\r\n bottom: ss.rect.bottom,\r\n height: ss.rect.bottom - (ss.rect.top + (ss.rect.height / 2)),\r\n left: ss.rect.left,\r\n right: ss.rect.right,\r\n width: ss.rect.width\r\n } as any;\r\n _spaceList.push(_ss2);\r\n }\r\n\r\n if (ss.isLast) {\r\n // 最後摘要\r\n const nextSummarySpace = summarySpaceList[i + 1];\r\n let nextTop: number = ss.rect.bottom + 65535;\r\n if (nextSummarySpace) {\r\n nextTop = nextSummarySpace.rect.top;\r\n }\r\n const _ss1 = new SummarySpace(ss);\r\n _ss1.type = SummarySpaceTypeId.LastOutSide;\r\n _ss1.rect = {\r\n top: ss.rect.bottom,\r\n bottom: nextTop,\r\n height: nextTop - ss.rect.bottom,\r\n left: ss.rect.left,\r\n right: ss.rect.right,\r\n width: ss.rect.width\r\n } as any;\r\n _spaceList.push(_ss1);\r\n }\r\n\r\n }\r\n\r\n\r\n // 找出滑鼠指標內的空間\r\n const targetSpace = _spaceList.find(s => this.mousePosition.y < s.rect.bottom);\r\n this.lastSummarySpace = targetSpace;\r\n\r\n // 畫布設定\r\n const canvasElement: HTMLCanvasElement = this.movingSummaryLineCanvas.nativeElement;\r\n const canvasRect = canvasElement.getBoundingClientRect();\r\n const ctx = canvasElement.getContext('2d');\r\n\r\n // 移動中摘要位置訊息\r\n const moveSummaryPosition = {\r\n left: movingSummarySpace.rect.left - canvasRect.left,\r\n top: movingSummarySpace.rect.top - canvasRect.top\r\n };\r\n\r\n\r\n // 清除畫布\r\n ctx.clearRect(0, 0, canvasElement.width, canvasElement.height);\r\n\r\n // ctx.strokeRect(\r\n // moveSummaryPosition.left + 2,\r\n // moveSummaryPosition.top + 2,\r\n // movingSummarySpace.rect.width + 2 - 4,\r\n // movingSummarySpace.rect.height - 4\r\n // );\r\n\r\n\r\n if (targetSpace) {\r\n // offset\r\n const offsetRect: ClientRect = {\r\n left: targetSpace.rect.left - canvasRect.left + 1,\r\n top: targetSpace.rect.top - canvasRect.top,\r\n bottom: targetSpace.rect.bottom - canvasRect.top,\r\n right: targetSpace.rect.right - canvasRect.left,\r\n width: targetSpace.rect.width,\r\n height: targetSpace.rect.height,\r\n } as any;\r\n const offsetSummaryRect: ClientRect = {\r\n left: targetSpace.summaryRect.left - canvasRect.left + 1,\r\n top: targetSpace.summaryRect.top - canvasRect.top,\r\n bottom: targetSpace.summaryRect.bottom - canvasRect.top,\r\n right: targetSpace.summaryRect.right - canvasRect.left,\r\n width: targetSpace.summaryRect.width,\r\n height: targetSpace.summaryRect.height,\r\n } as any;\r\n const offsetBlockRect: ClientRect = {\r\n left: targetSpace.blockRect.left - canvasRect.left - 2,\r\n top: targetSpace.blockRect.top - canvasRect.top - 2,\r\n bottom: targetSpace.blockRect.bottom - canvasRect.top,\r\n right: targetSpace.blockRect.right - canvasRect.left,\r\n width: targetSpace.blockRect.width + 1 + 4,\r\n height: targetSpace.blockRect.height - 1 + 4,\r\n } as any;\r\n\r\n // 目標點\r\n if (targetSpace.type === SummarySpaceTypeId.FirstBlockTopOutside) {\r\n const blankHight = 6;\r\n const blankTop = offsetRect.bottom - blankHight - 2;\r\n const blankTopCenter = blankTop + (blankHight / 2);\r\n ctx.beginPath();\r\n ctx.lineWidth = 2;\r\n ctx.strokeStyle = '#f00';\r\n ctx.fillStyle = '#f6dcdc';\r\n ctx.moveTo(moveSummaryPosition.left, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, blankTopCenter);\r\n ctx.lineTo(offsetRect.left, blankTopCenter);\r\n\r\n ctx.rect(offsetRect.left, blankTop, offsetRect.width, blankHight);\r\n ctx.fillRect(offsetRect.left, blankTop, offsetRect.width, blankHight);\r\n ctx.stroke();\r\n } else if (targetSpace.type === SummarySpaceTypeId.SingleFirstInside) {\r\n const blankHight = 20;\r\n const blankPaddingVert = 15;\r\n ctx.beginPath();\r\n ctx.lineWidth = 3;\r\n ctx.strokeStyle = '#ff5050';\r\n ctx.rect(offsetBlockRect.left + 0.5, offsetBlockRect.top + 0.5, offsetBlockRect.width, offsetBlockRect.height + (blankPaddingVert * 2) + blankHight);\r\n ctx.stroke();\r\n\r\n\r\n const blankPaddingHoz = 5;\r\n const blankTop = offsetBlockRect.bottom + blankPaddingVert;\r\n const blankTopCenter = blankTop + (blankHight / 2);\r\n ctx.beginPath();\r\n ctx.lineWidth = 2;\r\n ctx.strokeStyle = '#f00';\r\n ctx.moveTo(moveSummaryPosition.left, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, blankTopCenter);\r\n ctx.lineTo(offsetSummaryRect.left + blankPaddingHoz, blankTopCenter);\r\n\r\n ctx.rect(offsetSummaryRect.left + blankPaddingHoz, blankTop, offsetSummaryRect.width - (blankPaddingHoz * 2), blankHight);\r\n\r\n ctx.fillStyle = '#f6dcdc';\r\n ctx.fillRect(offsetSummaryRect.left + blankPaddingHoz, blankTop, offsetSummaryRect.width - (blankPaddingHoz * 2), blankHight);\r\n\r\n ctx.stroke();\r\n } else if (targetSpace.type === SummarySpaceTypeId.SingleFirstBottomInside) {\r\n const blankHight = 20;\r\n ctx.beginPath();\r\n ctx.lineWidth = 3;\r\n ctx.strokeStyle = '#ff5050';\r\n ctx.rect(offsetBlockRect.left + 0.5, offsetBlockRect.top + 0.5, offsetBlockRect.width, offsetBlockRect.height);\r\n ctx.stroke();\r\n\r\n const blankPaddingHoz = 5;\r\n const blankTop = offsetSummaryRect.bottom + 4;\r\n const blankTopCenter = blankTop + (blankHight / 2);\r\n ctx.beginPath();\r\n ctx.lineWidth = 2;\r\n ctx.strokeStyle = '#f00';\r\n ctx.moveTo(moveSummaryPosition.left, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, blankTopCenter);\r\n ctx.lineTo(offsetSummaryRect.left + blankPaddingHoz, blankTopCenter);\r\n\r\n ctx.rect(offsetSummaryRect.left + blankPaddingHoz, blankTop, offsetSummaryRect.width - (blankPaddingHoz * 2), blankHight);\r\n\r\n // ctx.fillStyle = '#f5f5f5';\r\n // ctx.fillRect(offsetSummaryRect.left, offsetSummaryRect.bottom, offsetSummaryRect.width, blankHight + 8);\r\n\r\n ctx.fillStyle = '#f6dcdc';\r\n ctx.fillRect(offsetSummaryRect.left + blankPaddingHoz, blankTop, offsetSummaryRect.width - (blankPaddingHoz * 2), blankHight);\r\n\r\n ctx.stroke();\r\n } else if (targetSpace.type === SummarySpaceTypeId.LastOutSide) {\r\n const blankHight = 20;\r\n const blankPaddingVert = 15;\r\n const blankTop = offsetRect.top + blankPaddingVert;\r\n const blankTopCenter = blankTop + (blankHight / 2);\r\n ctx.beginPath();\r\n ctx.lineWidth = 2;\r\n ctx.strokeStyle = '#f00';\r\n ctx.fillStyle = '#f6dcdc';\r\n ctx.moveTo(moveSummaryPosition.left, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, blankTopCenter);\r\n ctx.lineTo(offsetRect.left, blankTopCenter);\r\n\r\n ctx.rect(offsetRect.left, blankTop, offsetRect.width, blankHight);\r\n ctx.fillRect(offsetRect.left, blankTop, offsetRect.width, blankHight);\r\n ctx.stroke();\r\n } else if (targetSpace.type === SummarySpaceTypeId.SingleChildTopInside) {\r\n const blankHight = 20;\r\n ctx.beginPath();\r\n ctx.lineWidth = 3;\r\n ctx.strokeStyle = '#ff5050';\r\n ctx.rect(offsetBlockRect.left + 0.5, offsetBlockRect.top + 0.5, offsetBlockRect.width, offsetBlockRect.height);\r\n ctx.stroke();\r\n\r\n\r\n const blankPaddingHoz = 5;\r\n const blankTop = offsetSummaryRect.top + 4;\r\n const blankTopCenter = blankTop + (blankHight / 2);\r\n ctx.beginPath();\r\n ctx.lineWidth = 2;\r\n ctx.strokeStyle = '#f00';\r\n ctx.moveTo(moveSummaryPosition.left, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, blankTopCenter);\r\n ctx.lineTo(offsetSummaryRect.left + blankPaddingHoz, blankTopCenter);\r\n\r\n ctx.rect(offsetSummaryRect.left + blankPaddingHoz, blankTop, offsetSummaryRect.width - (blankPaddingHoz * 2), blankHight);\r\n\r\n ctx.fillStyle = '#f6dcdc';\r\n ctx.fillRect(offsetSummaryRect.left + blankPaddingHoz, blankTop, offsetSummaryRect.width - (blankPaddingHoz * 2), blankHight);\r\n\r\n ctx.stroke();\r\n } else if (targetSpace.type === SummarySpaceTypeId.SingleChildInside) {\r\n const blankHight = 20;\r\n const blankPaddingVert = 15;\r\n ctx.beginPath();\r\n ctx.lineWidth = 3;\r\n ctx.strokeStyle = '#ff5050';\r\n if (targetSpace.isLast) {\r\n ctx.rect(offsetBlockRect.left + 0.5, offsetBlockRect.top + 0.5, offsetBlockRect.width, offsetBlockRect.height + (blankPaddingVert * 2) + blankHight);\r\n } else {\r\n ctx.rect(offsetBlockRect.left + 0.5, offsetBlockRect.top + 0.5, offsetBlockRect.width, offsetBlockRect.height);\r\n }\r\n ctx.stroke();\r\n\r\n\r\n const blankPaddingHoz = 5;\r\n let blankTop = offsetSummaryRect.bottom + 4;\r\n if (targetSpace.isLast) {\r\n blankTop = offsetSummaryRect.bottom + blankPaddingVert;\r\n }\r\n const blankTopCenter = blankTop + (blankHight / 2);\r\n ctx.beginPath();\r\n ctx.lineWidth = 2;\r\n ctx.strokeStyle = '#f00';\r\n ctx.moveTo(moveSummaryPosition.left, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, moveSummaryPosition.top + 110);\r\n ctx.lineTo(moveSummaryPosition.left - 10, blankTopCenter);\r\n ctx.lineTo(offsetSummaryRect.left + blankPaddingHoz, blankTopCenter);\r\n\r\n ctx.rect(offsetSummaryRect.left + blankPaddingHoz, blankTop, offsetSummaryRect.width - (blankPaddingHoz * 2), blankHight);\r\n\r\n ctx.fillStyle = '#f6dcdc';\r\n ctx.fillRect(offsetSummaryRect.left + blankPaddingHoz, blankTop, offsetSummaryRect.width - (blankPaddingHoz * 2), blankHight);\r\n\r\n ctx.stroke();\r\n }\r\n\r\n // ctx.lineTo(moveSummaryPosition.left - 10, offsetY);\r\n // ctx.lineTo(offsetX, offsetY);\r\n // ctx.lineWidth = 4;\r\n\r\n\r\n\r\n }\r\n\r\n // summaryClientList.forEach(c => {\r\n\r\n // });\r\n }\r\n\r\n\r\n\r\n viewTop: number = 0;\r\n viewBottom: number = 9999;\r\n updateElementBlocksLoad(): void {\r\n // const listRect = this.summaryListElementRef.nativeElement.getBoundingClientRect();\r\n for (const block of this.summaryBlockList) {\r\n if (block.isBlockWrapperLoaded) {\r\n continue;\r\n }\r\n const blockElement = this.summaryBlockWrapperElementList.find(v => v.nativeElement.id == block.blockWrapperViewId);\r\n if (blockElement != null) {\r\n block.isBlockWrapperLoaded = true;\r\n // const rect = blockElement.nativeElement.getBoundingClientRect();\r\n // console.log(rect);\r\n // if (rect.top <= listRect.bottom && listRect.top <= rect.bottom) {\r\n // block.isBlockWrapperLoaded = true;\r\n // }\r\n }\r\n }\r\n }\r\n\r\n\r\n selectSummaryBlockElement(element: Element): void {\r\n // console.log('block');\r\n // this.selectedSummaryBlock = block;\r\n this.selectedSummaryBlockElement = element;\r\n }\r\n selectSummaryElement(element: Element): void {\r\n // console.log('item');\r\n // this.selectedSummary = summary;\r\n this.selectedSummaryElement = element;\r\n }\r\n\r\n\r\n // checkCursorClickTarget(ev: any, element: Element): boolean {\r\n // const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n // return path.some((a: Element) => {\r\n // return a === element;\r\n // });\r\n // }\r\n getParentClassElement(className: string, node: Node): HTMLElement {\r\n if (node instanceof Text) {\r\n return this.getParentClassElement(className, node.parentElement);\r\n } else if (node instanceof HTMLElement) {\r\n const _element = node as HTMLElement;\r\n if (_element.classList.contains(className)) {\r\n return _element;\r\n } else {\r\n return this.getParentClassElement(className, node.parentElement);\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n checkCursorClickTarget(ev: any, element: Element): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) outSummaryClick(ev: MouseEvent): void {\r\n // console.log('doc');\r\n // if (this.selectedSummaryBlockElement) {\r\n // if (!this.checkCursorClickTarget(ev, this.selectedSummaryBlockElement)) {\r\n // this.selectedSummaryBlockElement = null;\r\n // this.summaryListService.selectSummary(null);\r\n // }\r\n // }\r\n // if (this.selectedSummaryElement) {\r\n // if (!this.checkCursorClickTarget(ev, this.selectedSummaryElement)) {\r\n // this.selectedSummaryElement = null;\r\n // this.summaryListService.selectSummaryBlock(null);\r\n // }\r\n // }\r\n if (!this.summaryListService.disableCancelSelect\r\n && this.summaryListService.selectedSummaryBlock\r\n && !(\r\n this.checkCursorClickClassName(ev, 'summary-item')\r\n || this.checkCursorClickClassName(ev, 'summary-link-article')\r\n || this.checkCursorClickClassName(ev, 'summary-link-content')\r\n || this.checkCursorClickClassName(ev, 'delete-confirm-popup')\r\n || this.checkCursorClickClassName(ev, 'issue-list')\r\n || this.checkCursorClickClassName(ev, 'summary-link')\r\n // || this.checkCursorClickClassName(ev, 'law-article-editable-content')\r\n )\r\n && !this.checkCursorClickTarget(ev, this.summaryListService.selectedSummaryBlock.component.elementRef.nativeElement)) {\r\n this.summaryListService.selectSummaryBlock(null);\r\n }\r\n if (!this.summaryListService.disableCancelSelect\r\n && this.summaryListService.selectedSummary\r\n && !(\r\n this.checkCursorClickClassName(ev, 'summary-item')\r\n || this.checkCursorClickClassName(ev, 'summary-link-article')\r\n || this.checkCursorClickClassName(ev, 'summary-link-content')\r\n || this.checkCursorClickClassName(ev, 'delete-confirm-popup')\r\n || this.checkCursorClickClassName(ev, 'issue-list')\r\n || this.checkCursorClickClassName(ev, 'summary-link')\r\n // || this.checkCursorClickClassName(ev, 'law-article-editable-content')\r\n )\r\n && !this.checkCursorClickTarget(ev, this.summaryListService.selectedSummary.component.elementRef.nativeElement)) {\r\n this.summaryListService.selectSummary(null);\r\n }\r\n this.summaryListService.summaryBlockList.forEach((block: SummaryBlock) => {\r\n block.list.forEach((summary: Summary) => {\r\n if (summary.showTypeList\r\n && summary.component.summaryTypeElementRef\r\n && !this.checkCursorClickTarget(ev, summary.component.summaryTypeElementRef.nativeElement)) {\r\n summary.closeTypeList();\r\n }\r\n if (summary.showMenu\r\n && summary.component.summaryMenuElementRef\r\n && !this.checkCursorClickTarget(ev, summary.component.summaryMenuElementRef.nativeElement)) {\r\n summary.closeMenu();\r\n }\r\n if (summary.showGistMenu\r\n && summary.component.gistElementRef\r\n && !this.checkCursorClickTarget(ev, summary.component.gistElementRef.nativeElement)) {\r\n summary.closeGistMenu();\r\n }\r\n });\r\n });\r\n\r\n // console.log(this.summaryBlockComponentList);\r\n this.summaryBlockComponentList.forEach(summaryBlock => {\r\n summaryBlock.summaryComponentList.forEach(summary => {\r\n if (summary.isShowSymbolWindow\r\n && summary.symbolGadgetElementRef) {\r\n if (!this.checkCursorClickTarget(ev, summary.symbolGadgetElementRef.nativeElement)\r\n && !this.checkCursorClickTarget(ev, summary.titleTextElementRef.nativeElement)\r\n && !this.checkCursorClickTarget(ev, summary.contentTextElementRef.nativeElement)) {\r\n summary.isShowSymbolWindow = false;\r\n }\r\n }\r\n });\r\n });\r\n\r\n // 結束摘要移動\r\n if (this.enableMovingSummary) {\r\n console.log(this.lastSummarySpace);\r\n\r\n\r\n const isFirstTopOut = ev.shiftKey;\r\n this.summaryListService.moveSummaryToSpace(this.summaryListService.movingSummary, this.lastSummarySpace, isFirstTopOut);\r\n this.summaryListService.setSelectedSummaryBlockAndSummary(this.summaryListService.movingSummary.summaryBlock, this.summaryListService.movingSummary);\r\n this.summaryListService.updateMovingSummary(null);\r\n if (this.sideScrollSubscription) {\r\n this.sideScrollSubscription.unsubscribe();\r\n this.sideScrollSubscription = null;\r\n }\r\n this.enableMovingSummary = false;\r\n }\r\n }\r\n // @HostListener('document:mouseup', ['$event']) disableMoveSummary(ev: MouseEvent): void {\r\n // // this.summaryListService.updateMovingSummary(null);\r\n // // if (this.sideScrollSubscription) {\r\n // // this.sideScrollSubscription.unsubscribe();\r\n // // this.sideScrollSubscription = null;\r\n // // }\r\n // }\r\n @HostListener('document:mousemove', ['$event']) movingMouse(ev: MouseEvent): void {\r\n this.mousePosition.x = ev.clientX;\r\n this.mousePosition.y = ev.clientY;\r\n if (this.enableMovingSummary) {\r\n this.updateMovingSummarySpaceLine();\r\n }\r\n }\r\n\r\n\r\n textualizeOneLinePasteData(ev: ClipboardEvent): string {\r\n let clipText = ev.clipboardData.getData('text/plain');\r\n clipText = clipText.replace(/[\\r\\n]/g, '');\r\n console.log(ev);\r\n ev.clipboardData.types.forEach(type => {\r\n ev.clipboardData.clearData(type);\r\n });\r\n ev.clipboardData.clearData('*');\r\n ev.clipboardData.items.clear();\r\n console.log(clipText);\r\n ev.clipboardData.setData('text/plain', clipText);\r\n\r\n return clipText;\r\n }\r\n\r\n\r\n // newSummartAfter(summaryBlock: SummaryBlock, summary: Summary): void {\r\n // const index = summaryBlock.list.findIndex(v => v === summary);\r\n // const newSummary = new Summary(this.summaryListService);\r\n // newSummary.elementId = Guid.newGuid();\r\n // summaryBlock.list.splice((index + 1), 0, newSummary);\r\n // this.summaryListService.recalcAllSummarySn();\r\n\r\n // setTimeout(() => {\r\n // const summaryElement = document.getElementById(newSummary.elementId);\r\n // const titleElement = summaryElement.querySelector(`.content-row>.title>.text`);\r\n // this.selectSummary(newSummary, summaryElement);\r\n // newSummary.enableEditContent(titleElement);\r\n\r\n // newSummary.elementId = '';\r\n // }, 1);\r\n // }\r\n // deleteSummary(summaryBlock: SummaryBlock, summary: Summary): void {\r\n // summaryBlock.list = summaryBlock.list.filter(v => v !== summary);\r\n // if (summaryBlock.list.length === 0) {\r\n // this.deleteSummaryBlock(summaryBlock);\r\n // }\r\n // }\r\n // deleteSummaryBlock(summaryBlock: SummaryBlock) {\r\n // this.summaryListService.summaryBlockList = this.summaryBlockList.filter(v => v !== summaryBlock);\r\n // }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SummaryListComponent } from './summary-list.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SummaryBlockComponent } from './summary-block/summary-block.component';\r\nimport { SummaryComponent } from './summary/summary.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SummaryListComponent,\r\n SummaryBlockComponent,\r\n SummaryComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ],\r\n exports: [SummaryListComponent]\r\n})\r\nexport class SummaryListModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { SummaryBlock } from './summary-block';\r\nimport { Summary } from './summary';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { SummaryType } from './summary-type';\r\nimport { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\nimport { Subject, Observable, observable, Subscriber } from 'rxjs';\r\nimport { SummaryFilterSetting } from '../summary-filter-popup/summary-filter-setting';\r\nimport { ListBlockJoinDiscussComponent } from '../filter-popup/list-block-join-discuss/list-block-join-discuss.component';\r\nimport { LawArticleContent } from '../law-article-list/law-article-content';\r\nimport { SummaryFilterDisplayModeId } from '../summary-filter-popup/summary-filter-display-mode-id.enum';\r\nimport { SummarySpace } from './summary-space';\r\nimport { SummarySpaceTypeId } from './summary-space-type-id.enum';\r\nimport { MemberService } from '../member/member.service';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { SummaryConvert } from './summary-convert';\r\nimport { SummaryCopy } from './summary-copy';\r\nimport { SummaryComponent } from './summary/summary.component';\r\n\r\n@Injectable()\r\nexport class SummaryListService {\r\n // updateSummaryList$: Subject = new Subject();\r\n // changeSelectedSummary$: Subject = new Subject();\r\n\r\n summaryTypeList: SummaryType[][] = [[]];\r\n summaryTypeFlatList: SummaryType[] = [];\r\n summaryBlockList: SummaryBlock[] = [];\r\n summaryBlockList$: Subject = new Subject();\r\n selectedSummaryBlock: SummaryBlock;\r\n selectedSummary: Summary;\r\n selectedSummary$: Subject = new Subject();\r\n\r\n textCopyed$: Subject = new Subject();\r\n newSummaryConfirmEdit$: Subject = new Subject();\r\n summaryConfirmEdit$: Subject = new Subject();\r\n summaryValueChange$: Subject = new Subject();\r\n copySummary$: Subject = new Subject();\r\n deleteSummary$: Subject = new Subject();\r\n lastFilterSetting: SummaryFilterSetting;\r\n beforeAddSummaryCheck: () => boolean;\r\n\r\n movingSummary: Summary;\r\n movingSummary$: Subject = new Subject();\r\n moveEndSummary$: Subject = new Subject();\r\n\r\n copySummaryOnline$: Subject = new Subject();\r\n\r\n showSummaryToolBar: boolean = true;\r\n\r\n checkingHasCopySummary: boolean = false;\r\n hasCopySummary: boolean = false;\r\n // openedTypeListSummary: Summary;\r\n // openedMenuSummary: Summary;\r\n\r\n\r\n // 啟用摘要右上角選單\r\n enableTopRightMenuDisplay: boolean = false;\r\n // 啟用摘要底部選單\r\n enableBottomToolbarDisplay: boolean = false;\r\n // 啟用全面複製開關\r\n enableCopySummarySwitchDisplay: boolean = false;\r\n // 啟用學習訓練複製開關\r\n enableCopyLearnTrainingSwitchDisplay: boolean = false;\r\n // 啟用全面複製按鈕\r\n enableCopySummaryButtonDisplay: boolean = false;\r\n // 啟用學習訓練複製按鈕\r\n enableCopyLearnTrainingButtonDisplay: boolean = false;\r\n // 啟用複製, 標題、內容\r\n enableTextCopyDisplay: boolean = false;\r\n\r\n // 是否可編輯這個摘要\r\n enableEdit: boolean = false;\r\n // // 啟用編輯, 摘要種類\r\n // enableTypeEdit: boolean = false;\r\n // // 啟用編輯, 要旨\r\n // enableGistEdit: boolean = false;\r\n // // 啟用編輯, 標題、內容\r\n // enableTextEdit: boolean = false;\r\n // 是否顯示登入提示\r\n isCopySummaryLoginAlert: boolean = false;\r\n\r\n // disableBottomMenu: boolean = false;\r\n // disableTopRightMenu: boolean = false;\r\n // disableTextCopy: boolean = false;\r\n // disableTypeSelect: boolean = false;\r\n // disableTextEdit: boolean = false;\r\n // disableTagEdit: boolean = false;\r\n disableCancelSelect: boolean = false;\r\n // disableGistEdit: boolean = false;\r\n\r\n selectHighlightType: string = '';\r\n\r\n linkMode: boolean = false;\r\n lawRuleShowAll: boolean = false;\r\n\r\n onSummaryComponentInit: (summary: Summary, comp: SummaryComponent) => void;\r\n updateSummaryBlockView: () => void;\r\n\r\n constructor(\r\n private memberService: MemberService,\r\n private service: AppService,\r\n ) {\r\n // this.summaryTypeList = SummaryListService.lawRuleSummaryTypeList;\r\n // this.summaryTypeList.forEach(v => {\r\n // v.forEach(v2 => {\r\n // this.summaryTypeFlatList.push(v2);\r\n // });\r\n // });\r\n }\r\n\r\n setupEditorMode(): void {\r\n this.enableEdit = true;\r\n this.enableTopRightMenuDisplay = true;\r\n this.enableBottomToolbarDisplay = true;\r\n this.enableCopySummarySwitchDisplay = true;\r\n this.enableCopyLearnTrainingSwitchDisplay = true;\r\n this.enableCopySummaryButtonDisplay = false;\r\n this.enableCopyLearnTrainingButtonDisplay = false;\r\n this.enableTextCopyDisplay = true;\r\n\r\n // this.enableTypeEdit = true;\r\n // this.enableGistEdit = true;\r\n // this.enableTextEdit = true;\r\n }\r\n setupReaderMode(): void {\r\n this.enableEdit = false;\r\n this.enableTopRightMenuDisplay = false;\r\n this.enableBottomToolbarDisplay = false;\r\n this.enableCopySummarySwitchDisplay = false;\r\n this.enableCopyLearnTrainingSwitchDisplay = false;\r\n this.enableCopySummaryButtonDisplay = true;\r\n this.enableCopyLearnTrainingButtonDisplay = true;\r\n this.enableTextCopyDisplay = false;\r\n }\r\n\r\n\r\n\r\n updateSummaryTypeList(list: SummaryType[][]): void {\r\n this.summaryTypeList = list;\r\n this.summaryTypeList.forEach(v => {\r\n v.forEach(v2 => {\r\n this.summaryTypeFlatList.push(v2);\r\n });\r\n });\r\n }\r\n recalcAllSummaryOrder(): void {\r\n let index = 0;\r\n this.summaryBlockList.forEach((block, blockIndex) => {\r\n block.blockIndex = blockIndex;\r\n block.list.forEach((summary, summaryIndex) => {\r\n summary.index = summaryIndex;\r\n // summary.indexOfAll = index;\r\n if (summaryIndex === 0) {\r\n summary.sn = 'B' + (blockIndex + 1).toString().padStart(2, '0');\r\n } else {\r\n summary.sn = 'B' + (blockIndex + 1).toString().padStart(2, '0') + '-' + summaryIndex;\r\n }\r\n index++;\r\n });\r\n });\r\n }\r\n newSummartAfter(summaryBlock: SummaryBlock, summary: Summary): void {\r\n if (summaryBlock == null) {\r\n summaryBlock = new SummaryBlock(this);\r\n this.summaryBlockList.push(summaryBlock);\r\n }\r\n\r\n const newSummary = new Summary(this, summaryBlock);\r\n newSummary.ownerMemberId = this.memberService.memberHeader.member_id;\r\n newSummary.ownerName = this.memberService.memberHeader.nickname;\r\n newSummary.ownerPicture = this.memberService.memberHeader.picture;\r\n newSummary.addTime = new Date().getTime();\r\n newSummary.editTime = newSummary.addTime;\r\n\r\n if (summary == null) {\r\n summaryBlock.list.push(newSummary);\r\n } else {\r\n const index = summaryBlock.list.findIndex(v => v === summary);\r\n summaryBlock.list.splice((index + 1), 0, newSummary);\r\n }\r\n this.recalcAllSummaryOrder();\r\n\r\n newSummary.isNewSummary = true;\r\n newSummary.enableEditContent();\r\n\r\n this.updateHasCopySummary();\r\n // this.newSummary$.next(newSummary);\r\n\r\n setTimeout(() => {\r\n this.updateSummaryBlockList(this.summaryBlockList);\r\n this.selectSummary(newSummary);\r\n\r\n // newSummary.component.disableCopySummaryToggle = false;\r\n\r\n newSummary.component.focusTitleInput();\r\n newSummary.scrollIntoView();\r\n }, 1);\r\n }\r\n newSummartLast(\r\n linkedInfo: {\r\n content: LawArticleContent,\r\n startTextIndex: number,\r\n endTextIndex: number,\r\n } = null,\r\n config: {\r\n enableOpenCopyToggle?: boolean,\r\n enableLearnTrainingToggle?: boolean\r\n } = null\r\n ): Summary {\r\n const summaryBlock = new SummaryBlock(this);\r\n this.summaryBlockList.push(summaryBlock);\r\n\r\n const cfg = config || {};\r\n\r\n const newSummary = new Summary(this, summaryBlock);\r\n newSummary.ownerMemberId = this.memberService.memberHeader.member_id;\r\n newSummary.ownerName = this.memberService.memberHeader.nickname;\r\n newSummary.ownerPicture = this.memberService.memberHeader.picture;\r\n newSummary.addTime = new Date().getTime();\r\n newSummary.editTime = newSummary.addTime;\r\n if (linkedInfo) {\r\n newSummary.linkedLawArticleContent = linkedInfo.content;\r\n newSummary.linkStartTextIndex = linkedInfo.startTextIndex;\r\n newSummary.linkEndTextIndex = linkedInfo.endTextIndex;\r\n }\r\n\r\n summaryBlock.list.push(newSummary);\r\n this.recalcAllSummaryOrder();\r\n\r\n newSummary.isNewSummary = true;\r\n newSummary.enableEditContent();\r\n\r\n this.updateHasCopySummary();\r\n // this.newSummary$.next(newSummary);\r\n\r\n setTimeout(() => {\r\n this.updateSummaryBlockList(this.summaryBlockList);\r\n this.selectSummary(newSummary);\r\n newSummary.component.focusTitleInput();\r\n // if (cfg.enableOpenCopyToggle) {\r\n // newSummary.component.disableCopySummaryToggle = !cfg.enableOpenCopyToggle;\r\n // }\r\n // if (cfg.enableLearnTrainingToggle) {\r\n // newSummary.component.disableLearnTrainingToggle = !cfg.enableLearnTrainingToggle;\r\n // }\r\n newSummary.scrollIntoView();\r\n // this.changeSelectedSummary();\r\n }, 1);\r\n\r\n return newSummary;\r\n }\r\n newSummartLastObserver(linkedInfo: {\r\n content: LawArticleContent,\r\n startTextIndex: number,\r\n endTextIndex: number,\r\n } = null\r\n , config: {\r\n showOpenCopyToggle?: boolean\r\n } = null): Observable {\r\n return Observable.create((subsc: Subscriber) => {\r\n const cfg = config || {};\r\n\r\n const summaryBlock = new SummaryBlock(this);\r\n this.summaryBlockList.push(summaryBlock);\r\n\r\n const newSummary = new Summary(this, summaryBlock);\r\n newSummary.ownerMemberId = this.memberService.memberHeader.member_id;\r\n newSummary.ownerName = this.memberService.memberHeader.nickname;\r\n newSummary.ownerPicture = this.memberService.memberHeader.picture;\r\n newSummary.addTime = new Date().getTime();\r\n newSummary.editTime = newSummary.addTime;\r\n if (linkedInfo) {\r\n newSummary.linkedLawArticleContent = linkedInfo.content;\r\n newSummary.linkStartTextIndex = linkedInfo.startTextIndex;\r\n newSummary.linkEndTextIndex = linkedInfo.endTextIndex;\r\n }\r\n summaryBlock.list.push(newSummary);\r\n this.recalcAllSummaryOrder();\r\n\r\n newSummary.isNewSummary = true;\r\n newSummary.enableEditContent();\r\n\r\n this.updateHasCopySummary();\r\n\r\n setTimeout(() => {\r\n this.updateSummaryBlockList(this.summaryBlockList);\r\n this.selectSummary(newSummary);\r\n newSummary.component.focusTitleInput();\r\n // if (cfg.showOpenCopyToggle) {\r\n // newSummary.component.disableCopySummaryToggle = !cfg.showOpenCopyToggle;\r\n // }\r\n newSummary.scrollIntoView();\r\n // this.changeSelectedSummary();\r\n subsc.next(newSummary);\r\n subsc.complete();\r\n }, 1);\r\n\r\n return () => { };\r\n });\r\n }\r\n deleteSummary(summaryBlock: SummaryBlock, summary: Summary): void {\r\n if (this.selectedSummary === summary) {\r\n this.selectSummary(null);\r\n }\r\n summaryBlock.list = summaryBlock.list.filter(v => v !== summary);\r\n if (summaryBlock.list.length === 0) {\r\n this.summaryBlockList = this.summaryBlockList.filter(v => v !== summaryBlock);\r\n }\r\n this.recalcAllSummaryOrder();\r\n this.updateSummaryBlockList(this.summaryBlockList);\r\n\r\n this.deleteSummary$.next([summary]);\r\n }\r\n deleteSummaryBlock(summaryBlock: SummaryBlock) {\r\n this.summaryBlockList = this.summaryBlockList.filter(v => v !== summaryBlock);\r\n this.recalcAllSummaryOrder();\r\n this.updateSummaryBlockList(this.summaryBlockList);\r\n\r\n this.deleteSummary$.next(summaryBlock.list);\r\n }\r\n selectSummary(summary: Summary): void {\r\n this.selectedSummary = summary;\r\n this.selectSummaryBlock(summary ? summary.summaryBlock : null);\r\n this.selectedSummary$.next(summary);\r\n }\r\n selectSummaryBlock(summaryBlock: SummaryBlock): void {\r\n this.selectedSummaryBlock = summaryBlock;\r\n }\r\n\r\n // newSummaryConfirmEdit(summary: Summary): void {\r\n // this.newSummaryConfirmEdit$.next(summary);\r\n // }\r\n\r\n setSelectedSummaryBlockAndSummary(summaryBlock: SummaryBlock, summary: Summary): void {\r\n this.selectedSummaryBlock = summaryBlock;\r\n this.selectedSummary = summary;\r\n }\r\n\r\n\r\n setSummaryblockList(list: SummaryBlock[]): void {\r\n // this.updateSummaryList$.next(this.summaryBlockList);\r\n this.summaryBlockList = list;\r\n }\r\n updateSummaryBlockList(list: SummaryBlock[]): void {\r\n // this.updateSummaryList$.next(this.summaryBlockList);\r\n this.summaryBlockList = list;\r\n this.summaryBlockList$.next(this.summaryBlockList);\r\n }\r\n // changeSelectedSummary(): void {\r\n // this.changeSelectedSummary$.next(this.selectedSummary);\r\n // }\r\n\r\n updateSummaryListShow(setting: SummaryFilterSetting): void {\r\n this.lastFilterSetting = setting;\r\n\r\n const typeIdDict = {};\r\n setting.selectedTypes.forEach(id => typeIdDict[id] = 1);\r\n\r\n const showAllType = Object.keys(typeIdDict).length === this.summaryTypeFlatList.length;\r\n // console.log(showAllType);\r\n\r\n\r\n this.summaryBlockList.forEach(block => {\r\n block.list.forEach(summary => summary.show = false);\r\n\r\n // let list = block.list;\r\n // if (this.lastFilterSetting.displayModeId === SummaryFilterDisplayModeId.LawArticle) {\r\n // list = block.list.filter(summary =>\r\n // summary.selected\r\n // || summary.editing\r\n // || (summary.linkedLawArticleContent && summary.linkedLawArticleContent.lawArticleItem.lawArticleBlock.selected)\r\n // );\r\n // }\r\n\r\n block.list.forEach(summary => {\r\n\r\n // 摘要被選擇、編輯中\r\n if (summary.selected\r\n || summary.editing\r\n ) {\r\n summary.show = true;\r\n\r\n\r\n } else {\r\n // 顯示全部\r\n if (this.lastFilterSetting.displayModeId === SummaryFilterDisplayModeId.All) {\r\n // 過濾種類\r\n if (typeIdDict[summary.summaryType.id]) {\r\n if (!setting.keyword) {\r\n summary.show = true;\r\n } else if (\r\n summary.titleText.indexOf(setting.keyword) > -1\r\n || summary.contentText.indexOf(setting.keyword) > -1\r\n || summary.tagList.some(t => t.text.indexOf(setting.keyword) > -1)\r\n ) {\r\n summary.show = true;\r\n }\r\n }\r\n\r\n\r\n // 選擇法條\r\n } else if (this.lastFilterSetting.displayModeId === SummaryFilterDisplayModeId.LawArticle) {\r\n if (summary.linkedLawArticleContent && summary.linkedLawArticleContent.lawArticleItem.lawArticleBlock.selected) {\r\n // 過濾種類\r\n if (typeIdDict[summary.summaryType.id]) {\r\n if (!setting.keyword) {\r\n summary.show = true;\r\n } else if (\r\n summary.titleText.indexOf(setting.keyword) > -1\r\n || summary.contentText.indexOf(setting.keyword) > -1\r\n || summary.tagList.some(t => t.text.indexOf(setting.keyword) > -1)\r\n ) {\r\n summary.show = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (this.lawRuleShowAll && block.show) {\r\n block.list.forEach(s => s.show = true);\r\n } else if (showAllType && block.show) {\r\n block.list.forEach(s => s.show = true);\r\n }\r\n // if (block.show) {\r\n // block.list.forEach(s => s.show = true);\r\n // }\r\n });\r\n }\r\n updateSummaryListShowWithLastSetting(): void {\r\n if (this.lastFilterSetting) {\r\n this.updateSummaryListShow(this.lastFilterSetting);\r\n }\r\n if (this.updateSummaryBlockView != null) {\r\n this.updateSummaryBlockView();\r\n }\r\n }\r\n\r\n\r\n\r\n getFlatSummaryList(): Summary[] {\r\n const list: Summary[] = [];\r\n this.summaryBlockList.forEach(b => {\r\n list.push(...b.list);\r\n });\r\n return list;\r\n }\r\n\r\n getLinkedSummaryList(): Summary[] {\r\n return this.getFlatSummaryList()\r\n .filter(v => v.linkedLawArticleContent);\r\n // .map(v => v.linkedLawArticleContent.lawArticleItem.lawArticleBlock.lawSystem.numberText);\r\n }\r\n\r\n autoSortSummaryListByLawContent(): void {\r\n this.summaryBlockList.sort((a, b) => {\r\n const aLLAC = a.list[0].linkedLawArticleContent;\r\n const bLLAC = b.list[0].linkedLawArticleContent;\r\n if (aLLAC != null && bLLAC != null) {\r\n const aSystem = aLLAC.lawArticleItem.lawSystem.source;\r\n const bSystem = bLLAC.lawArticleItem.lawSystem.source;\r\n return aSystem.sid - bSystem.sid;\r\n } else if (aLLAC != null && bLLAC == null) {\r\n return 1;\r\n } else if (aLLAC == null && bLLAC != null) {\r\n return -1;\r\n } else if (aLLAC == null && bLLAC == null) {\r\n return 0;\r\n }\r\n });\r\n this.summaryBlockList.forEach(block => {\r\n if (block.list.length > 2) {\r\n const list = block.list.slice(1);\r\n list.sort((a, b) => {\r\n if (a.linkedLawArticleContent != null && b.linkedLawArticleContent != null) {\r\n const aSystem = a.linkedLawArticleContent.lawArticleItem.lawSystem.source;\r\n const bSystem = b.linkedLawArticleContent.lawArticleItem.lawSystem.source;\r\n return aSystem.sid - bSystem.sid;\r\n } else if (a.linkedLawArticleContent != null && b.linkedLawArticleContent == null) {\r\n return 1;\r\n } else if (a.linkedLawArticleContent == null && b.linkedLawArticleContent != null) {\r\n return -1;\r\n } else if (a.linkedLawArticleContent == null && b.linkedLawArticleContent == null) {\r\n return 0;\r\n }\r\n });\r\n const firstSummary = block.list[0];\r\n block.list = [firstSummary];\r\n block.list.push(...list);\r\n }\r\n });\r\n\r\n this.recalcAllSummaryOrder();\r\n this.updateSummaryBlockList(this.summaryBlockList);\r\n }\r\n autoSortSummaryListByLineNumber(): void {\r\n this.summaryBlockList.sort((a, b) => {\r\n const aLn = a.list[0].linkedLineNumber;\r\n const bLn = b.list[0].linkedLineNumber;\r\n if (aLn != null && bLn != null) {\r\n return aLn - bLn;\r\n } else if (aLn != null && bLn == null) {\r\n return 1;\r\n } else if (aLn == null && bLn != null) {\r\n return -1;\r\n } else if (aLn == null && bLn == null) {\r\n return 0;\r\n }\r\n });\r\n this.summaryBlockList.forEach(block => {\r\n if (block.list.length > 2) {\r\n const list = block.list.slice(1);\r\n list.sort((a, b) => {\r\n if (a.linkedLineNumber != null && b.linkedLineNumber != null) {\r\n return a.linkedLineNumber - b.linkedLineNumber;\r\n } else if (a.linkedLawArticleContent != null && b.linkedLawArticleContent == null) {\r\n return 1;\r\n } else if (a.linkedLawArticleContent == null && b.linkedLawArticleContent != null) {\r\n return -1;\r\n } else if (a.linkedLawArticleContent == null && b.linkedLawArticleContent == null) {\r\n return 0;\r\n }\r\n });\r\n const firstSummary = block.list[0];\r\n block.list = [firstSummary];\r\n block.list.push(...list);\r\n }\r\n });\r\n\r\n this.recalcAllSummaryOrder();\r\n this.updateSummaryBlockList(this.summaryBlockList);\r\n }\r\n\r\n\r\n /** 移動整串摘要到新位置 */\r\n moveSummaryBlockToIndex(summaryBlock: SummaryBlock, targetIndex: number): void {\r\n const holder: any = {};\r\n // 找出原本區塊位置\r\n const sourceIndex = this.summaryBlockList.findIndex(v => v === summaryBlock);\r\n // 替換佔位\r\n this.summaryBlockList.splice(sourceIndex, 1, holder);\r\n // 插入新位置\r\n this.summaryBlockList.splice(targetIndex, 0, summaryBlock);\r\n // 移除佔位\r\n this.summaryBlockList = this.summaryBlockList.filter(v => v !== holder);\r\n }\r\n /** 移動整串摘要,插入至指定摘要中 */\r\n moveSummaryBlockToSummaryBlock(summaryBlock: SummaryBlock, targetSummaryBlock: SummaryBlock, targetIndex: number): void {\r\n // 移除原串摘要\r\n this.summaryBlockList = this.summaryBlockList.filter(v => v !== summaryBlock);\r\n // 插入新摘要串中\r\n targetSummaryBlock.list.splice(targetIndex, 0, ...summaryBlock.list);\r\n // 重新設定子摘要所屬\r\n summaryBlock.list.forEach(s => s.summaryBlock = targetSummaryBlock);\r\n }\r\n /** 拉出摘要,成為新摘要串 */\r\n moveSummaryOutSummaryBlock(summary: Summary, targetIndex: number): void {\r\n // 把摘要拉出摘要串\r\n summary.summaryBlock.list = summary.summaryBlock.list.filter(v => v !== summary);\r\n // 建立新區塊\r\n const summaryBlock = new SummaryBlock(this);\r\n summaryBlock.list.push(summary);\r\n summary.summaryBlock = summaryBlock;\r\n // 插入目標位置\r\n this.summaryBlockList.splice(targetIndex, 0, summaryBlock);\r\n }\r\n /** 拉出摘要,插入至指定摘要中 */\r\n moveSummaryToSummaryBlock(summary: Summary, targetBlock: SummaryBlock, targetIndex: number): void {\r\n const holder: any = {};\r\n const sourceBlock: SummaryBlock = summary.summaryBlock;\r\n // 找出原本摘要位置\r\n const sourceIndex = sourceBlock.list.findIndex(v => v === summary);\r\n // 替換佔位\r\n sourceBlock.list.splice(sourceIndex, 1, holder);\r\n // 插入新摘要位置\r\n targetBlock.list.splice(targetIndex, 0, summary);\r\n // 移除佔位\r\n sourceBlock.list = sourceBlock.list.filter(v => v !== holder);\r\n // 設定摘要所屬\r\n summary.summaryBlock = targetBlock;\r\n }\r\n\r\n\r\n moveSummaryToSpace(summary: Summary, targetSummarySpace: SummarySpace, isFirstTopOut: boolean = false): void {\r\n // if (targetSummarySpace.isSelf\r\n // && targetSummarySpace.type !== SummarySpaceTypeId.LastOutSide) {\r\n // return false;\r\n // }\r\n\r\n const isFirst = (summary === summary.summaryBlock.list[0]);\r\n\r\n\r\n if (targetSummarySpace.type === SummarySpaceTypeId.FirstBlockTopOutside) {\r\n // 第一個摘上邊外\r\n const targetBlockIndex = this.summaryBlockList.findIndex(v => v === targetSummarySpace.summary.summaryBlock);\r\n if (summary.summaryBlock.list.length === 1 || isFirst) {\r\n if (isFirstTopOut) {\r\n // 把摘要拉出摘要串\r\n this.moveSummaryOutSummaryBlock(summary, targetBlockIndex);\r\n } else {\r\n // 移動整串\r\n this.moveSummaryBlockToIndex(summary.summaryBlock, targetBlockIndex);\r\n }\r\n\r\n\r\n // this.summaryBlockList.splice(targetBlockIndex, 0, summary.summaryBlock);\r\n // const sourceBlockIndex = this.summaryBlockList.findIndex(v => v === summary.summaryBlock);\r\n // this.summaryBlockList.splice(sourceBlockIndex, 1);\r\n } else {\r\n // 把摘要拉出摘要串\r\n this.moveSummaryOutSummaryBlock(summary, targetBlockIndex);\r\n // summary.summaryBlock.list = summary.summaryBlock.list.filter(v => v !== summary);\r\n // // if (summary.summaryBlock.list.length === 0) {\r\n // // this.summaryBlockList = this.summaryBlockList.filter(v => v !== summary.summaryBlock);\r\n // // }\r\n // // 插入新的摘要串\r\n // const summaryBlock = new SummaryBlock(this);\r\n // summaryBlock.list.push(summary);\r\n // summary.summaryBlock = summaryBlock;\r\n // this.summaryBlockList.splice(targetBlockIndex, 0, summaryBlock);\r\n }\r\n } else if (targetSummarySpace.type === SummarySpaceTypeId.SingleFirstInside) {\r\n // 放在指定摘要串最後一個\r\n const targetIndex = targetSummarySpace.summary.summaryBlock.list.length;\r\n if (summary.summaryBlock.list.length === 1 || isFirst) {\r\n // 移動整串\r\n this.moveSummaryBlockToSummaryBlock(summary.summaryBlock, targetSummarySpace.summary.summaryBlock, targetIndex);\r\n // targetSummarySpace.summary.summaryBlock.list.push(...summary.summaryBlock.list);\r\n // summary.summaryBlock.list.forEach(s => s.summaryBlock = targetSummarySpace.summary.summaryBlock);\r\n // this.summaryBlockList = this.summaryBlockList.filter(v => v !== summary.summaryBlock);\r\n } else {\r\n // 把摘要拉出摘要串\r\n this.moveSummaryToSummaryBlock(summary, targetSummarySpace.summary.summaryBlock, targetIndex);\r\n // summary.summaryBlock.list = summary.summaryBlock.list.filter(v => v !== summary);\r\n // // 插入到指定摘要\r\n // targetSummarySpace.summary.summaryBlock.list.push(summary);\r\n // summary.summaryBlock = targetSummarySpace.summary.summaryBlock;\r\n }\r\n\r\n } else if (targetSummarySpace.type === SummarySpaceTypeId.SingleFirstBottomInside\r\n || targetSummarySpace.type === SummarySpaceTypeId.SingleChildInside) {\r\n // 放在指定摘要後一個\r\n const targetSummaryIndex = targetSummarySpace.summary.summaryBlock.list.findIndex(s => s === targetSummarySpace.summary) + 1;\r\n if (summary.summaryBlock.list.length === 1 || isFirst) {\r\n // 移動整串\r\n this.moveSummaryBlockToSummaryBlock(summary.summaryBlock, targetSummarySpace.summary.summaryBlock, targetSummaryIndex);\r\n // targetSummarySpace.summary.summaryBlock.list.splice(targetSummaryIndex, 0, ...summary.summaryBlock.list);\r\n // summary.summaryBlock.list.forEach(s => s.summaryBlock = targetSummarySpace.summary.summaryBlock);\r\n // this.summaryBlockList = this.summaryBlockList.filter(v => v !== summary.summaryBlock);\r\n } else {\r\n this.moveSummaryToSummaryBlock(summary, targetSummarySpace.summary.summaryBlock, targetSummaryIndex);\r\n // // 把摘要拉出摘要串\r\n // summary.summaryBlock.list = summary.summaryBlock.list.filter(v => v !== summary);\r\n // // 插入到指定摘要\r\n // targetSummarySpace.summary.summaryBlock.list.splice(targetSummaryIndex, 0, summary);\r\n // summary.summaryBlock = targetSummarySpace.summary.summaryBlock;\r\n }\r\n\r\n } else if (targetSummarySpace.type === SummarySpaceTypeId.LastOutSide) {\r\n // 放在指定摘要串後面\r\n const targetBlockIndex = this.summaryBlockList.findIndex(v => v === targetSummarySpace.summary.summaryBlock) + 1;\r\n if (summary.summaryBlock.list.length === 1 || isFirst) {\r\n // 移動整串\r\n this.moveSummaryBlockToIndex(summary.summaryBlock, targetBlockIndex);\r\n // const sourceBlockIndex = this.summaryBlockList.findIndex(v => v === summary.summaryBlock);\r\n // this.summaryBlockList.splice(sourceBlockIndex, 1);\r\n // this.summaryBlockList.splice(targetBlockIndex, 0, summary.summaryBlock);\r\n } else {\r\n // 把摘要拉出摘要串\r\n this.moveSummaryOutSummaryBlock(summary, targetBlockIndex);\r\n // summary.summaryBlock.list = summary.summaryBlock.list.filter(v => v !== summary);\r\n // // 插入新的摘要串\r\n // const summaryBlock = new SummaryBlock(this);\r\n // summary.summaryBlock = summaryBlock;\r\n // summaryBlock.list.push(summary);\r\n // this.summaryBlockList.splice(targetBlockIndex, 0, summaryBlock);\r\n }\r\n } else if (targetSummarySpace.type === SummarySpaceTypeId.SingleChildTopInside) {\r\n // 放在指定摘要前面\r\n const targetSummaryIndex = targetSummarySpace.summary.summaryBlock.list.findIndex(s => s === targetSummarySpace.summary);\r\n if (summary.summaryBlock.list.length === 1 || isFirst) {\r\n // 移動整串\r\n this.moveSummaryBlockToSummaryBlock(summary.summaryBlock, targetSummarySpace.summary.summaryBlock, targetSummaryIndex);\r\n } else {\r\n this.moveSummaryToSummaryBlock(summary, targetSummarySpace.summary.summaryBlock, targetSummaryIndex);\r\n }\r\n }\r\n\r\n this.recalcAllSummaryOrder();\r\n this.updateSummaryBlockList(this.summaryBlockList);\r\n this.moveEndSummary$.next(summary);\r\n }\r\n updateMovingSummary(summary: Summary): void {\r\n this.movingSummary = summary;\r\n this.movingSummary$.next(summary);\r\n }\r\n\r\n\r\n updateHasCopySummary(): void {\r\n if (this.checkingHasCopySummary) {\r\n return;\r\n }\r\n\r\n this.checkingHasCopySummary = true;\r\n this.checkHasCopySummaryObserver().subscribe((r: boolean) => {\r\n this.hasCopySummary = r;\r\n this.checkingHasCopySummary = false;\r\n });\r\n }\r\n setCopySummary(summary: Summary): void {\r\n this.checkingHasCopySummary = true;\r\n this.setCopySummaryObserver(summary).subscribe(() => {\r\n this.checkingHasCopySummary = false;\r\n });\r\n }\r\n checkHasCopySummaryObserver(): Observable {\r\n return this.service.get('summary/check_copy');\r\n }\r\n setCopySummaryObserver(summary: Summary): Observable {\r\n const copySummary: SummaryCopy = SummaryConvert.summaryToCopy(summary);\r\n return this.service.post('summary/set_copy', copySummary);\r\n }\r\n setCopySummary2Observer(\r\n summaryType: SummaryType,\r\n summary_title: string,\r\n summary_content: string,\r\n summary_tag_list: string[]\r\n ): Observable {\r\n const data = {\r\n summary_type_id: summaryType.id,\r\n summary_title: summary_title,\r\n summary_content: summary_content,\r\n summary_tag_list: summary_tag_list,\r\n }\r\n return this.service.post('summary/set_copy', data);\r\n }\r\n getCopySummaryObserver(): Observable {\r\n return this.service.get('summary/get_copy');\r\n }\r\n setCopySummaryObserver2(data: any): Observable {\r\n // const copySummary: SummaryCopy = SummaryConvert.summaryToCopy(summary);\r\n return this.service.post('summary/set_copy', data);\r\n }\r\n getCopySummaryObserver2(): Observable {\r\n return this.service.get('summary/get_copy');\r\n }\r\n}\r\n","import { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\n\r\nexport class SummarySave {\r\n summary_id: string;\r\n summary_owner_member_id: string;\r\n summary_owner_name: string;\r\n summary_owner_picture: string;\r\n summary_block_index: number;\r\n summary_index: number;\r\n summary_type_id: SummaryTypeId;\r\n summary_title: string;\r\n summary_content: string;\r\n summary_add_time: number;\r\n summary_edit_time: number;\r\n summary_link_content_id: string;\r\n summary_link_range: string;\r\n summary_tag_list: string[] = [];\r\n\r\n // vvvv summary_json內容 vvvv\r\n summary_gist_id: number;\r\n // 1=open 0=lock\r\n summary_open_copy: number;\r\n summary_learn_training_title: string;\r\n summary_learn_training_content: string;\r\n summary_learn_training_open_copy: number;\r\n\r\n\r\n\r\n // toSummary(\r\n // block: SummaryBlock,\r\n // service: SummaryListService,\r\n // lawArticleListService: LawArticleListService\r\n // ): Summary {\r\n // const summary = new Summary(service, block);\r\n\r\n // summary.index = this.summary_index;\r\n // summary.titleText = this.summary_title;\r\n // summary.contentText = this.summary_content;\r\n // if (this.summary_link_content_id) {\r\n // const lawArticleContent = lawArticleListService.lawArticleId2ContentDict[this.summary_link_content_id];\r\n // summary.linkedLawArticleContent = lawArticleContent;\r\n // const linkRange = this.summary_link_range.split(',').map(v => parseInt(v, 10));\r\n // summary.linkStartTextIndex = linkRange[0];\r\n // summary.linkEndTextIndex = linkRange[1];\r\n // }\r\n\r\n // return summary;\r\n // }\r\n}\r\n","export enum SummarySpaceTypeId {\r\n FirstBlockTopOutside = 0,\r\n SingleFirstInside = 1,\r\n SingleFirstBottomInside = 2,\r\n LastOutSide = 3,\r\n SingleChildTopInside = 4,\r\n SingleChildInside = 5,\r\n Self = 6,\r\n SelfBlock = 7,\r\n}\r\n","import { SummarySpaceTypeId } from './summary-space-type-id.enum';\r\nimport { Summary } from './summary';\r\n\r\nexport class SummarySpace {\r\n // static virtualSpace: { [key: string]: SummarySpaceTypeId } = {\r\n // FirstBlockTopOutside\r\n // }\r\n type: SummarySpaceTypeId;\r\n summary: Summary;\r\n rect: ClientRect;\r\n summaryRect: ClientRect;\r\n blockRect: ClientRect;\r\n element: HTMLElement;\r\n isSelf: boolean;\r\n isFirst: boolean;\r\n isLast: boolean;\r\n isSameBlock: boolean;\r\n constructor(source?: SummarySpace) {\r\n if (source) {\r\n this.summary = source.summary;\r\n // this.rect = source.rect;\r\n this.element = source.element;\r\n this.isSelf = source.isSelf;\r\n this.isFirst = source.isFirst;\r\n this.isLast = source.isLast;\r\n this.isSameBlock = source.isSameBlock;\r\n this.summaryRect = source.element.getBoundingClientRect();\r\n this.blockRect = (source.summary.summaryBlock.component.summaryBlockElementRef.nativeElement).getBoundingClientRect();\r\n }\r\n }\r\n}\r\n","export class SummaryTag {\r\n text: string;\r\n}\r\n","import { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\nimport { AppCommonStatic } from 'projects/desktop/src/app/app-common-static';\r\n\r\nexport class SummaryType {\r\n get className(): string {\r\n return AppCommonStatic.convertText_CamelCaseToLowerDash(SummaryTypeId[this.id].toString());\r\n }\r\n\r\n constructor(\r\n id: SummaryTypeId,\r\n text: string\r\n ) {\r\n this.id = id;\r\n this.text = text;\r\n }\r\n\r\n static summaryTypeAll: SummaryType = SummaryType.create(SummaryTypeId.All, '全部');\r\n /** 摘要種類Dict,不能把全部種類混進去 */\r\n static typeDict: { [key: string]: SummaryType } = {\r\n // WriterSummary: SummaryType.create(SummaryTypeId.WriterSummary, '筆者'),\r\n // LawSummary: SummaryType.create(SummaryTypeId.LawSummary, '法條'),\r\n // ProfessorSummary: SummaryType.create(SummaryTypeId.ProfessorSummary, '教授'),\r\n // StudentSummary: SummaryType.create(SummaryTypeId.StudentSummary, '學生'),\r\n // GeneralSummary: SummaryType.create(SummaryTypeId.GeneralSummary, '通說'),\r\n // PracticeSummary: SummaryType.create(SummaryTypeId.PracticeSummary, '實務'),\r\n // GlossarySummary: SummaryType.create(SummaryTypeId.GlossarySummary, '名詞'),\r\n // HelpSummary: SummaryType.create(SummaryTypeId.HelpSummary, '求救'),\r\n // IssueSummary: SummaryType.create(SummaryTypeId.IssueSummary, '爭點'),\r\n // ExamSummary: SummaryType.create(SummaryTypeId.ExamSummary, '考點'),\r\n // ReviseSummary: SummaryType.create(SummaryTypeId.ReviseSummary, '修正'),\r\n // FactSummary: SummaryType.create(SummaryTypeId.FactSummary, '案例'),\r\n WriterSummary: SummaryType.create(SummaryTypeId.WriterSummary, '筆者'),\r\n PlaintiffSummary: SummaryType.create(SummaryTypeId.PlaintiffSummary, '原告'),\r\n DefendantSummary: SummaryType.create(SummaryTypeId.DefendantSummary, '被告'),\r\n AppellantSummary: SummaryType.create(SummaryTypeId.AppellantSummary, '上訴人'),\r\n AppelleeSummary: SummaryType.create(SummaryTypeId.AppelleeSummary, '被上訴人'),\r\n PetitionerSummary: SummaryType.create(SummaryTypeId.PetitionerSummary, '聲請人'),\r\n ResistSummary: SummaryType.create(SummaryTypeId.ResistSummary, '抗告人'),\r\n ResistAgainSummary: SummaryType.create(SummaryTypeId.ResistAgainSummary, '再抗告人'),\r\n JudgeSummary: SummaryType.create(SummaryTypeId.JudgeSummary, '本審'),\r\n OriginalSummary: SummaryType.create(SummaryTypeId.OriginalSummary, '原審'),\r\n PublicProsecutorSummary: SummaryType.create(SummaryTypeId.PublicProsecutorSummary, '公訴人'),\r\n ComplainantSummary: SummaryType.create(SummaryTypeId.ComplainantSummary, '告訴人'),\r\n PrivateProsecutorSummary: SummaryType.create(SummaryTypeId.PrivateProsecutorSummary, '自訴人'),\r\n WitnessSummary: SummaryType.create(SummaryTypeId.WitnessSummary, '證人'),\r\n ExpertWitnessSummary: SummaryType.create(SummaryTypeId.ExpertWitnessSummary, '鑑定人'),\r\n ParticipantSummary: SummaryType.create(SummaryTypeId.ParticipantSummary, '參加人'),\r\n IssueSummary: SummaryType.create(SummaryTypeId.IssueSummary, '爭點'),\r\n FactSummary: SummaryType.create(SummaryTypeId.FactSummary, '事實'),\r\n EvidenceSummary: SummaryType.create(SummaryTypeId.EvidenceSummary, '證據'),\r\n LawSummary: SummaryType.create(SummaryTypeId.LawSummary, '法條'),\r\n CompetentAuthoritySummary: SummaryType.create(SummaryTypeId.CompetentAuthoritySummary, '機關'),\r\n SampleSummary: SummaryType.create(SummaryTypeId.SampleSummary, '精選'),\r\n ProfessorSummary: SummaryType.create(SummaryTypeId.ProfessorSummary, '教授'),\r\n StudentSummary: SummaryType.create(SummaryTypeId.StudentSummary, '同學'),\r\n GeneralSummary: SummaryType.create(SummaryTypeId.GeneralSummary, '討論'),\r\n PracticeSummary: SummaryType.create(SummaryTypeId.PracticeSummary, '實務'),\r\n GlossarySummary: SummaryType.create(SummaryTypeId.GlossarySummary, '名詞'),\r\n HelpSummary: SummaryType.create(SummaryTypeId.HelpSummary, '求救'),\r\n ExamSummary: SummaryType.create(SummaryTypeId.ExamSummary, '整合'),\r\n ReviseSummary: SummaryType.create(SummaryTypeId.ReviseSummary, '修正'),\r\n CaseSummary: SummaryType.create(SummaryTypeId.CaseSummary, '案例'),\r\n };\r\n /** 摘要種類清單,不能把全部種類混進去 */\r\n static typeList: SummaryType[] = [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.WriterSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PlaintiffSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.DefendantSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.AppellantSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.AppelleeSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PetitionerSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ResistSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ResistAgainSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.JudgeSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.OriginalSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PublicProsecutorSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ComplainantSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PrivateProsecutorSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.WitnessSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ExpertWitnessSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ParticipantSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.IssueSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.FactSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.EvidenceSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.LawSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.CompetentAuthoritySummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.SampleSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ProfessorSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.StudentSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.GeneralSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PracticeSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.GlossarySummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.HelpSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ExamSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ReviseSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.CaseSummary]],\r\n ];\r\n static lawRuleSummaryTypeList: SummaryType[][] = [\r\n [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.WriterSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.LawSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ProfessorSummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.StudentSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.GeneralSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PracticeSummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.GlossarySummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.HelpSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.IssueSummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ExamSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ReviseSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.CaseSummary]],\r\n ]\r\n ];\r\n static judgmentSummaryTypeList: SummaryType[][] = [\r\n [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.WriterSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PlaintiffSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.DefendantSummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.AppellantSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.AppelleeSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PetitionerSummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ResistSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ResistAgainSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.JudgeSummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.OriginalSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PublicProsecutorSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ComplainantSummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PrivateProsecutorSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.WitnessSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ExpertWitnessSummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ParticipantSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.IssueSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.FactSummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.EvidenceSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.LawSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.CompetentAuthoritySummary]],\r\n ], [\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.SampleSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PracticeSummary]],\r\n SummaryType.typeDict[SummaryTypeId[SummaryTypeId.ProfessorSummary]],\r\n ],\r\n ];\r\n\r\n id: SummaryTypeId;\r\n text: string = '';\r\n get idText(): string { return SummaryTypeId[this.id]; }\r\n static create(id: SummaryTypeId, text: string): SummaryType {\r\n const type = new SummaryType(id, text);\r\n return type;\r\n }\r\n}\r\n","import { SummaryTag } from './summary-tag';\r\nimport { SummaryListService } from './summary-list.service';\r\nimport { SummaryBlock } from './summary-block';\r\nimport { Guid } from 'projects/lwlib/src/guid';\r\nimport { SummaryComponent } from './summary/summary.component';\r\nimport { SummaryType } from './summary-type';\r\nimport { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\nimport { LawArticleContent } from '../law-article-list/law-article-content';\r\nimport { ElementScroll } from 'projects/lwlib/src/element-scroll/element-scroll';\r\nimport { SummarySave } from './summary-save';\r\nimport { SummaryCopy } from './summary-copy';\r\nimport { TextStyle } from 'projects/lwlib/src/text-style/text-style';\r\nimport { SummaryGistId } from './summary-gist-id.enum';\r\nimport { SummaryGist } from './summary-gist';\r\n\r\nexport class Summary {\r\n // element: Element;\r\n component: SummaryComponent;\r\n // 摘要元素ID\r\n elementId: string = '';\r\n // 是否新摘要\r\n isNewSummary: boolean = false;\r\n // 摘要是否被選擇中\r\n get selected(): boolean {\r\n return this.summaryListService.selectedSummary === this;\r\n }\r\n\r\n /** 摘要ID */\r\n summaryId: string = '';\r\n /** 摘要串中的順序 */\r\n index: number = 0;\r\n\r\n // 摘要作者ID\r\n ownerMemberId: string = '';\r\n // 摘要作者名字\r\n ownerName: string = '';\r\n // 摘要作者頭像\r\n ownerPicture: string = '';\r\n\r\n /** 全部摘要的順序 */\r\n // indexOfAll: number = 0;\r\n /** B01-X */\r\n sn: string = '';\r\n // 摘要是否顯示,用在法規筆記中\r\n show: boolean = true;\r\n // 是否顯示摘要功能選單\r\n showMenu: boolean = false;\r\n // 是否顯示摘要種類選單\r\n showTypeList: boolean = false;\r\n // 該摘要種類\r\n summaryType: SummaryType;\r\n\r\n // 編輯前備份標題文字\r\n _titleText: string = '';\r\n // 編輯前備份內容文字\r\n _contentText: string = '';\r\n // 編輯中標題文字\r\n editTitleText: string = '';\r\n // 編輯中內容文字\r\n editContentText: string = '';\r\n // 摘要標題文字\r\n titleText: string = '';\r\n // 摘要內容文字\r\n contentText: string = '';\r\n // titleContentElement: Element;\r\n // contentContentElement: Element;\r\n\r\n // 啟用內容編輯\r\n editContent: boolean;\r\n // 啟用標籤編輯\r\n editTag: boolean;\r\n\r\n // 標籤清單\r\n _tagList: SummaryTag[] = [];\r\n tagList: SummaryTag[] = [];\r\n // 標籤清單是否有變動\r\n hasChangeTagList: boolean = false;\r\n\r\n // 要旨選單顯示\r\n showGistMenu: boolean = false;\r\n // 摘要要旨ID\r\n gistId: SummaryGistId = SummaryGistId.Summary;\r\n get gist(): SummaryGist { return SummaryGist.Dict[SummaryGistId[this.gistId]]; }\r\n\r\n // 摘要是否爭點種類\r\n get isIssueType(): boolean {\r\n if (this.summaryType == null) {\r\n return false;\r\n }\r\n if (this.summaryType.id === SummaryTypeId.IssueSummary) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n get isOneInputRowType(): boolean {\r\n if (this.summaryType == null) {\r\n return false;\r\n }\r\n return this.summaryType.id === SummaryTypeId.IssueSummary\r\n || this.summaryType.id === SummaryTypeId.SampleSummary;\r\n }\r\n\r\n\r\n // 是否啟用摘要複製\r\n isOpenCopy: boolean = false;\r\n // 事件: 摘要複製完成時\r\n onSummaryCopyed: (component: SummaryComponent) => void;\r\n\r\n\r\n // 法條內文關聯\r\n linkedLawArticleContent: LawArticleContent;\r\n get linkLawArticleContentId(): string { return this.linkedLawArticleContent.contentId2; }\r\n\r\n // 一般內文關聯\r\n linkedLineNumber: number;\r\n linkStartTextIndex: number;\r\n linkEndTextIndex: number;\r\n get linkedNumberText(): string {\r\n if (this.linkedLawArticleContent) {\r\n return this.linkedLawArticleContent.lawArticleItem.numberName;\r\n } else if (this.linkedLineNumber > -1) {\r\n return `第${(this.linkedLineNumber + 1)}行`;\r\n }\r\n return '';\r\n }\r\n get linkMode(): boolean { return this.summaryListService.linkMode; }\r\n\r\n\r\n\r\n // 摘要新增時間\r\n addTime: number = 0;\r\n // 摘要編輯時間\r\n editTime: number = 0;\r\n\r\n // 摘要是否有重複標籤\r\n get isDuplicateTag(): boolean {\r\n return this.newTagText.length > 0\r\n && this.tagList.length > 0\r\n && this.tagList.some(v => v.text === this.newTagText);\r\n }\r\n\r\n // 新標籤文字\r\n newTagText: string = '';\r\n\r\n // 摘要是否有標籤\r\n get hasTag(): boolean {\r\n return this.tagList && this.tagList.length > 0;\r\n }\r\n\r\n // 是否有複製中的摘要\r\n get hasClipboard(): boolean { return this.summaryListService.hasCopySummary; }\r\n // 是否摘要剪貼版檢查中\r\n get checkingClipboard(): boolean { return this.summaryListService.checkingHasCopySummary; }\r\n // 正在貼上摘要\r\n pastingSummary: boolean = false;\r\n // 正在傳送複製摘要\r\n copyingSummary: boolean = false;\r\n\r\n\r\n // 學習訓練標題\r\n learnTrainingTitle: string;\r\n // 學習訓練內容\r\n learnTrainingContent: string;\r\n // 是否開啟學習訓練開關\r\n learnTrainingOpenCopy: boolean;\r\n\r\n\r\n\r\n\r\n // 編輯中\r\n get editing(): boolean {\r\n return this.editContent\r\n || this.editTag;\r\n }\r\n // 移動中\r\n get movingSummary(): boolean { return this.summaryListService.movingSummary === this; }\r\n // 摘要是否顯示內容區塊\r\n get showContent(): boolean {\r\n return !this.isOneInputRowType;\r\n // return this.summaryType !== SummaryType.typeDict['IssueSummary'];\r\n }\r\n\r\n\r\n\r\n /** 個別摘要開關設定 */\r\n // 啟用摘要右上角選單\r\n enableTopRightMenuDisplay: boolean = null;\r\n // 啟用摘要底部選單\r\n enableBottomToolbarDisplay: boolean = null;\r\n // 啟用全面複製開關\r\n enableCopySummarySwitchDisplay: boolean = null;\r\n // 啟用學習訓練複製開關\r\n enableCopyLearnTrainingSwitchDisplay: boolean = null;\r\n // 啟用全面複製按鈕\r\n enableCopySummaryButtonDisplay: boolean = null;\r\n // 啟用學習訓練複製按鈕\r\n enableCopyLearnTrainingButtonDisplay: boolean = null;\r\n // 啟用複製, 標題、內容\r\n enableTextCopyDisplay: boolean = null;\r\n\r\n // 是否可編輯這個摘要\r\n enableEdit: boolean = null;\r\n // // 啟用編輯, 摘要種類\r\n // enableTypeEdit: boolean = false;\r\n // // 啟用編輯, 要旨\r\n // enableGistEdit: boolean = false;\r\n // // 啟用編輯, 標題、內容\r\n // enableTextEdit: boolean = false;\r\n\r\n\r\n\r\n // isInited: boolean = false;\r\n // 事件: 摘要組件初始化時\r\n onComponentInit: (component: SummaryComponent) => void;\r\n\r\n\r\n\r\n\r\n\r\n constructor(\r\n private summaryListService: SummaryListService,\r\n public summaryBlock: SummaryBlock\r\n ) {\r\n this.elementId = Guid.newGuid();\r\n this.summaryId = Guid.newGuid();\r\n this.summaryType = SummaryType.typeDict.WriterSummary;\r\n if (summaryListService) {\r\n this.summaryType = summaryListService.summaryTypeList[0][0];\r\n }\r\n }\r\n\r\n\r\n\r\n // clickSelectSummary(): void {\r\n // this.summaryListService.selectSummary(this);\r\n // // this.selectSummary();\r\n // // this.summaryListService.changeSelectedSummary();\r\n // }\r\n selectSummary(): void {\r\n this.summaryListService.selectSummary(this);\r\n }\r\n deleteSummary(): void {\r\n this.summaryListService.deleteSummary(this.summaryBlock, this);\r\n }\r\n deleteSummaryBlock(): void {\r\n this.summaryBlock.deleteSummaryBlock();\r\n }\r\n newSummaryAfter(): void {\r\n let canAddSummary = false;\r\n if (this.summaryListService.beforeAddSummaryCheck == null) {\r\n canAddSummary = true;\r\n } else if (this.summaryListService.beforeAddSummaryCheck != null) {\r\n if (this.summaryListService.beforeAddSummaryCheck()) {\r\n canAddSummary = true;\r\n }\r\n }\r\n if (canAddSummary) {\r\n this.summaryBlock.newSummaryAfter(this);\r\n }\r\n }\r\n\r\n toggleMenu(): void {\r\n this.showMenu = !this.showMenu;\r\n }\r\n closeMenu(): void {\r\n this.showMenu = false;\r\n }\r\n\r\n\r\n toggleGistMenu(): void {\r\n this.showGistMenu = !this.showGistMenu;\r\n }\r\n closeGistMenu(): void {\r\n this.showGistMenu = false;\r\n }\r\n selectGist(item: SummaryGist): void {\r\n this.gistId = item.id;\r\n this.showGistMenu = false;\r\n this.summaryListService.summaryValueChange$.next(this);\r\n }\r\n\r\n toggleTypeList(): void {\r\n this.showTypeList = !this.showTypeList;\r\n }\r\n closeTypeList(): void {\r\n this.showTypeList = false;\r\n }\r\n selectSummaryType(type: SummaryType): void {\r\n this.summaryType = type;\r\n this.showTypeList = false;\r\n\r\n if (this.isOneInputRowType) {\r\n this.titleText = this.contentText;\r\n this._titleText = this._contentText;\r\n this.editTitleText = this.editContentText;\r\n\r\n // this.contentText = '';\r\n // this._contentText = '';\r\n // this.editContentText = '';\r\n }\r\n\r\n this.summaryListService.summaryValueChange$.next(this);\r\n }\r\n\r\n\r\n\r\n\r\n /** 0:title,1:content */\r\n enableEditContent(): void {\r\n this.editContent = true;\r\n\r\n this._titleText = this.titleText;\r\n this._contentText = this.contentText;\r\n\r\n this.editTitleText = this.titleText;\r\n this.editContentText = this.contentText;\r\n // this.titleContentElement = titleElement;\r\n // this.contentContentElement = contentElement;\r\n\r\n // setTimeout(() => {\r\n // (focusElement).focus();\r\n // }, 1);\r\n }\r\n disableEditContent(): void {\r\n this.editContent = false;\r\n }\r\n confirmEditContent(): void {\r\n this.titleText = this.editTitleText;\r\n this.contentText = this.editContentText;\r\n\r\n this.editTime = new Date().getTime();\r\n\r\n if (this.isNewSummary) {\r\n this.summaryListService.newSummaryConfirmEdit$.next(this);\r\n } else {\r\n this.summaryListService.summaryConfirmEdit$.next(this);\r\n }\r\n this.summaryListService.summaryValueChange$.next(this);\r\n\r\n this.isNewSummary = false;\r\n this.disableEditContent();\r\n this.summaryListService.updateSummaryBlockList(this.summaryListService.summaryBlockList);\r\n // this.summaryListService.updateSummaryList$.next(true);\r\n }\r\n cancelEditContent(): void {\r\n\r\n this.titleText = this._titleText;\r\n this.contentText = this._contentText;\r\n\r\n // this.titleContentElement.textContent = this._titleText;\r\n // this.contentContentElement.textContent = this._contentText;\r\n\r\n this.disableEditContent();\r\n\r\n if (this.isNewSummary) {\r\n this.deleteSummary();\r\n // this.summaryListService.changeSelectedSummary();\r\n }\r\n }\r\n disableConfirmEditContent(): boolean {\r\n return this.editTitleText.length === 0\r\n && this.editContentText.length === 0;\r\n }\r\n updateTitleText(element: Element): void {\r\n this.editTitleText = element.textContent;\r\n }\r\n updateContentText(element: Element): void {\r\n this.editContentText = element.textContent;\r\n }\r\n\r\n\r\n\r\n enableEditTag(): void {\r\n this.editTag = true;\r\n if (!this.tagList) {\r\n this.tagList = [];\r\n }\r\n this._tagList = JSON.parse(JSON.stringify(this.tagList));\r\n // setTimeout(() => {\r\n // (focusElement).focus();\r\n // }, 1);\r\n }\r\n disableEditTag(): void {\r\n this.editTag = false;\r\n this.hasChangeTagList = false;\r\n }\r\n confirmEditTag(): void {\r\n this.editTime = new Date().getTime();\r\n this.disableEditTag();\r\n }\r\n cancelEditTag(): void {\r\n this.tagList = this._tagList;\r\n this.disableEditTag();\r\n }\r\n disableConfirmNewTag(): boolean {\r\n return !this.hasChangeTagList;\r\n }\r\n\r\n\r\n // keydownTag(element: Element, ev: any): void {\r\n // const inputText = element.textContent.replace(/[\\r\\n]/g, '').substring(0, 15);\r\n // }\r\n // inputTag(element: Element, ev: any): void {\r\n // let inputText = element.textContent.replace(/[\\r\\n]/g, '');\r\n // if (this.newTagText.length < 15) {\r\n // inputText = inputText.substring(0, 15);\r\n\r\n // const selection = window.getSelection();\r\n // let cursorPosition = selection.baseOffset;\r\n\r\n // this.newTagText = inputText;\r\n // element.textContent = this.newTagText;\r\n\r\n // if (this.newTagText.length < cursorPosition) {\r\n // cursorPosition = this.newTagText.length;\r\n // }\r\n\r\n // const textNode = element.firstChild;\r\n // selection.setPosition(textNode, cursorPosition);\r\n // } else if (this.newTagText.length === 15) {\r\n\r\n // }\r\n\r\n\r\n // // .setPosition(element.firstChild,5)\r\n // // if (this.newTagText.length >= 15\r\n // // && text.length >= 15) {\r\n // // ev.preventDefault();\r\n // // ev.stopPropagation();\r\n // // element.textContent = this.newTagText;\r\n // // return;\r\n // // }\r\n // // element.textContent = text;\r\n // // this.newTagText = element.textContent.substring(0, 15);\r\n // }\r\n // pasteTag(text: string, ev: ClipboardEvent): void {\r\n // ev.preventDefault();\r\n // ev.stopPropagation();\r\n // this.newTagText += text;\r\n // }\r\n // updateNewTag(element: Element): void {\r\n // element.textContent = element.textContent.replace(/[\\r\\n]/g, '');\r\n // this.newTagText = element.textContent.substring(0, 15);\r\n // element.textContent = this.newTagText;\r\n // }\r\n\r\n addTag(ev: KeyboardEvent): void {\r\n if (ev.keyCode === 13 && !this.isDuplicateTag && this.newTagText.trim().length > 0) {\r\n const tag = new SummaryTag();\r\n tag.text = this.newTagText.trim();\r\n this.tagList.push(tag);\r\n this.newTagText = '';\r\n this.hasChangeTagList = true;\r\n\r\n this.editTime = new Date().getTime();\r\n this.summaryListService.summaryValueChange$.next(this);\r\n }\r\n }\r\n deleteTag(tag: SummaryTag): void {\r\n this.tagList = this.tagList.filter(v => v !== tag);\r\n this.hasChangeTagList = true;\r\n\r\n this.editTime = new Date().getTime();\r\n this.summaryListService.summaryValueChange$.next(this);\r\n }\r\n\r\n scrollIntoView(instant: boolean = false): void {\r\n // if (this.selfClick) { return; }\r\n // const element = document.getElementById(this.elementId);\r\n const element = this.component.elementRef.nativeElement;\r\n if (element) {\r\n if (instant) {\r\n element.scrollIntoView({});\r\n } else {\r\n ElementScroll.intoViewStep(element, 20);\r\n }\r\n // element.scrollIntoView({ 'behavior': 'smooth' });\r\n // setTimeout(() => {\r\n // element.scrollIntoView({});\r\n // }, 300);\r\n }\r\n }\r\n\r\n getLawArticleContentLinkedRange(): Range {\r\n if (!this.linkLawArticleContentId) {\r\n return null;\r\n }\r\n const element = document.getElementById(this.linkedLawArticleContent.id);\r\n let range: Range;\r\n if (this.linkStartTextIndex === -1\r\n && this.linkEndTextIndex === -1) {\r\n range = document.createRange();\r\n range.selectNode(element);\r\n } else {\r\n range = TextStyle.convertTextIndexToRange(element, this.linkStartTextIndex, this.linkEndTextIndex);\r\n }\r\n\r\n\r\n\r\n return range;\r\n }\r\n\r\n // toSaveObject(): SummarySave {\r\n // const save: SummarySave = new SummarySave();\r\n // save.summary_id = this.summaryId;\r\n // save.owner = 'self';\r\n // save.summary_block_index = this.summaryBlock.blockIndex;\r\n // save.summary_index = this.index;\r\n // save.summary_type = this.summaryType.id;\r\n // save.summary_title = this.titleText;\r\n // save.summary_content = this.contentText;\r\n // save.summary_add_time = this.addTime;\r\n // save.summary_edit_time = this.editTime;\r\n // save.summary_link_content_id = this.linkedLawArticleContent ? this.linkedLawArticleContent.contentId2 : '';\r\n // save.summary_link_range = this.linkedLawArticleContent ? [this.linkStartTextIndex, this.linkEndTextIndex].join(',') : '';\r\n // return save;\r\n // }\r\n\r\n copySummary(): void {\r\n if (!this.checkingClipboard) {\r\n this.copyingSummary = true;\r\n this.summaryListService.setCopySummaryObserver2({\r\n summary_type_id: this.summaryType.id,\r\n summary_title: this.titleText,\r\n summary_content: this.contentText,\r\n summary_tag_list: this.tagList.map(v => v.text),\r\n summary_gist_id: this.gistId || 1,\r\n }).subscribe(() => {\r\n this.summaryListService.copySummaryOnline$.next(this);\r\n this.copyingSummary = false;\r\n this.summaryListService.copySummary$.next(this);\r\n });\r\n\r\n // '已複製,請建立新摘要並建入', '4s cubic-bezier(0.895, 0.03, 0.685, 0.22)'\r\n // this.summaryListService.setCopySummary(this);\r\n }\r\n }\r\n copyLearnTraining(): void {\r\n if (!this.checkingClipboard) {\r\n this.copyingSummary = true;\r\n\r\n let type = this.summaryType;\r\n if (type == SummaryType.typeDict[SummaryTypeId[SummaryTypeId.JudgeSummary]]) {\r\n type = SummaryType.typeDict[SummaryTypeId[SummaryTypeId.PracticeSummary]];\r\n }\r\n\r\n this.summaryListService.setCopySummary2Observer(\r\n type,\r\n this.learnTrainingTitle,\r\n this.learnTrainingContent,\r\n this.tagList.map(v => v.text),\r\n ).subscribe(() => {\r\n this.summaryListService.copySummaryOnline$.next(this);\r\n this.copyingSummary = false;\r\n this.summaryListService.copySummary$.next(this);\r\n });\r\n\r\n // '已複製,請建立新摘要並建入', '4s cubic-bezier(0.895, 0.03, 0.685, 0.22)'\r\n // this.summaryListService.setCopySummary(this);\r\n }\r\n }\r\n pasteSummary(): void {\r\n if (\r\n this.hasClipboard\r\n && !this.checkingClipboard\r\n && !this.pastingSummary\r\n && this.editing\r\n && this.isNewSummary\r\n ) {\r\n this.pastingSummary = true;\r\n // this.summaryListService.getCopySummaryObserver().subscribe((summaryCopy: SummaryCopy) => {\r\n this.summaryListService.getCopySummaryObserver2().subscribe((data: any) => {\r\n this.summaryType = SummaryType.typeDict[SummaryTypeId[data.summary_type_id]];\r\n this.titleText = data.summary_title;\r\n this.contentText = data.summary_content;\r\n this.editTitleText = data.summary_title;\r\n this.editContentText = data.summary_content;\r\n this.tagList = data.summary_tag_list.map(v => {\r\n const tag = new SummaryTag();\r\n tag.text = v;\r\n return tag;\r\n });\r\n this.gistId = data.summary_gist_id || SummaryGistId.Summary;\r\n\r\n this.summaryListService.hasCopySummary = false;\r\n this.pastingSummary = false;\r\n });\r\n }\r\n }\r\n\r\n\r\n updateOpenCopy(isOpen: boolean): void {\r\n this.isOpenCopy = isOpen;\r\n this.summaryListService.summaryValueChange$.next(this);\r\n }\r\n\r\n updateLearnTrainingOpenCopy(isOpen: boolean): void {\r\n this.learnTrainingOpenCopy = isOpen;\r\n this.summaryListService.summaryValueChange$.next(this);\r\n }\r\n}\r\n","import { Component, OnInit, Input, HostListener, ElementRef, HostBinding, ViewChild } from '@angular/core';\r\nimport { Summary } from '../summary';\r\nimport { SummaryListService } from '../summary-list.service';\r\nimport { SummaryType } from '../summary-type';\r\nimport { TextCopy } from 'projects/lwlib/src/text-copy';\r\nimport { DeleteConfirmPopupOpenerService } from '../../delete-confirm-popup/delete-confirm-popup-opener.service';\r\nimport { DeleteConfirmPopupType } from '../../delete-confirm-popup/delete-confirm-popup-type';\r\nimport { Subscription, interval } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { AppCommonStatic } from 'projects/desktop/src/app/app-common-static';\r\nimport { SummaryGist } from '../summary-gist';\r\nimport { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { SymbolStrings } from 'projects/mobile/src/app/common/common';\r\n\r\n@Component({\r\n selector: 'app-summary',\r\n templateUrl: './summary.component.html',\r\n styleUrls: ['./summary.component.scss'],\r\n})\r\nexport class SummaryComponent implements OnInit {\r\n summaryGist: any = SummaryGist;\r\n get summaryTypeList(): SummaryType[][] {\r\n return this.summaryListService.summaryTypeList;\r\n }\r\n get symbolStrings(): string {\r\n return SymbolStrings;\r\n }\r\n symbolList: string[][] = [];\r\n // get lawRuleSummaryTypeList(): SummaryType[][] { return this.summaryListService.summaryTypeList; }\r\n\r\n @Input() summary: Summary;\r\n @ViewChild('symbolGadgetElementRef') symbolGadgetElementRef: ElementRef;\r\n @ViewChild('titleTextElementRef') titleTextElementRef: ElementRef;\r\n @ViewChild('contentTextElementRef') contentTextElementRef: ElementRef;\r\n @ViewChild('tagInputElementRef', { static: true }) tagInputElementRef: ElementRef;\r\n @ViewChild('summaryTypeElementRef', { static: true }) summaryTypeElementRef: ElementRef;\r\n @ViewChild('summaryMenuElementRef') summaryMenuElementRef: ElementRef;\r\n @ViewChild('gistElementRef') gistElementRef: ElementRef;\r\n\r\n // elementRef: ElementRef;\r\n get movingSummary(): boolean { return this.summary.movingSummary; }\r\n get hasSummaryMoving(): boolean { return this.summaryListService.movingSummary != null; }\r\n get showSummaryToolBar(): boolean { return this.summaryListService.showSummaryToolBar; }\r\n\r\n\r\n\r\n get enableEdit(): boolean {\r\n return (this.summary.enableEdit == null\r\n ? this.summaryListService.enableEdit\r\n : this.summary.enableEdit);\r\n }\r\n get enableTopRightMenuDisplay(): boolean {\r\n return this.enableEdit\r\n && (this.summary.enableTopRightMenuDisplay == null\r\n ? this.summaryListService.enableTopRightMenuDisplay\r\n : this.summary.enableTopRightMenuDisplay)\r\n && !this.summary.editing\r\n && !this.hasSummaryMoving;\r\n }\r\n get enableBottomToolbarDisplay(): boolean {\r\n return this.enableEdit\r\n && (this.summary.enableBottomToolbarDisplay == null\r\n ? this.summaryListService.enableBottomToolbarDisplay\r\n : this.summary.enableBottomToolbarDisplay)\r\n && this.summary.selected\r\n && !this.summary.editing\r\n && !this.hasSummaryMoving;\r\n }\r\n get enableCopySummarySwitchDisplay(): boolean {\r\n return this.enableEdit\r\n && (this.summary.enableCopySummarySwitchDisplay == null\r\n ? this.summaryListService.enableCopySummarySwitchDisplay\r\n : this.summary.enableCopySummarySwitchDisplay)\r\n && !this.hasSummaryMoving;\r\n }\r\n get enableCopyLearnTrainingSwitchDisplay(): boolean {\r\n return this.enableEdit\r\n && (this.summary.enableCopyLearnTrainingSwitchDisplay == null\r\n ? this.summaryListService.enableCopyLearnTrainingSwitchDisplay\r\n : this.summary.enableCopyLearnTrainingSwitchDisplay)\r\n && this.summary.learnTrainingTitle\r\n && this.summary.learnTrainingContent\r\n && !this.hasSummaryMoving\r\n && this.summary.summaryType != SummaryType.typeDict['SampleSummary'];\r\n }\r\n get enableTextCopyTitleDisplay(): boolean {\r\n return (\r\n (this.enableEdit)\r\n || (\r\n this.summary.isOpenCopy\r\n )\r\n )\r\n && this.summary.titleText\r\n && this.summary.selected\r\n && !this.summary.editing\r\n && !this.hasSummaryMoving;\r\n }\r\n get enableTextCopyContentDisplay(): boolean {\r\n return (\r\n (this.enableEdit)\r\n || (\r\n this.summary.isOpenCopy\r\n )\r\n )\r\n && this.summary.contentText\r\n && this.summary.selected\r\n && !this.summary.editing\r\n && !this.hasSummaryMoving;\r\n }\r\n get enableCopySummaryButtonDisplay(): boolean {\r\n return (this.summary.enableCopySummaryButtonDisplay == null\r\n ? this.summaryListService.enableCopySummaryButtonDisplay\r\n : this.summary.enableCopySummaryButtonDisplay)\r\n && this.summary.isOpenCopy\r\n && !this.summary.editing\r\n && !this.hasSummaryMoving;\r\n }\r\n get enableCopyLearnTrainingButtonDisplay(): boolean {\r\n return (this.summary.enableCopyLearnTrainingButtonDisplay == null\r\n ? this.summaryListService.enableCopyLearnTrainingButtonDisplay\r\n : this.summary.enableCopyLearnTrainingButtonDisplay)\r\n && this.summary.learnTrainingOpenCopy\r\n && !this.summary.editing\r\n && !this.hasSummaryMoving;\r\n }\r\n\r\n\r\n\r\n\r\n // get disableBottomMenu(): boolean { return this.summaryListService.disableBottomMenu; }\r\n // get disableTopRightMenu(): boolean { return this.summaryListService.disableTopRightMenu; }\r\n // // 取summaryListService的是否關閉文字複製\r\n // get disableTextCopy(): boolean { return this.summaryListService.disableTextCopy; }\r\n // // 是否開放複製, 這是單一摘要設定 (關聯isOpenCopy)\r\n // disableTextCopy2: boolean = false;\r\n // get disableTypeSelect(): boolean { return this.summaryListService.disableTypeSelect; }\r\n // get disableTextEdit(): boolean { return this.summaryListService.disableTextEdit; }\r\n // get disableTagEdit(): boolean { return this.summaryListService.disableTagEdit; }\r\n // get disableGistEdit(): boolean { return this.summaryListService.disableGistEdit; }\r\n // disableTopCopySummaryButton: boolean = true;\r\n // disableCopySummaryToggle: boolean = true;\r\n // isTopCopySummaryLoginAlert: boolean = false;\r\n // disableLearnTrainingButton: boolean = true;\r\n // disableLearnTrainingToggle: boolean = true;\r\n\r\n get selectHighlightType(): string { return this.summaryListService.selectHighlightType; }\r\n\r\n caretStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n inputRange: Range;\r\n isShowSymbolWindow: boolean = false;\r\n caretUpdateSubsc: Subscription;\r\n\r\n // 摘要複製\r\n isOpenCopy: boolean;\r\n // 學習紀錄複製\r\n isOpenCopyLearnTraining: boolean;\r\n\r\n // caretData: string = 'null';\r\n get startNode(): Node {\r\n if (this.inputRange) {\r\n return this.inputRange.startContainer;\r\n }\r\n return null;\r\n }\r\n // caretPos: number = 0;\r\n // caretRangeStyleList: any[] = [];\r\n\r\n constructor(\r\n public elementRef: ElementRef,\r\n private summaryListService: SummaryListService,\r\n private deleteConfirmPopupOpenerService: DeleteConfirmPopupOpenerService,\r\n public service: AppService,\r\n ) {\r\n // this.elementRef = elementRef;\r\n\r\n const symbolRowList = this.symbolStrings.split('\\n');\r\n for (let i = 0; i < symbolRowList.length; i++) {\r\n const symbolRow = symbolRowList[i];\r\n this.symbolList.push(symbolRow.split(''));\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n // console.log(this);\r\n // console.log(this.summaryListService);\r\n // this.summaryTypeList = this.lawRuleSummaryTypeList;\r\n this.summary.component = this;\r\n\r\n this.isOpenCopy = this.summary.isOpenCopy;\r\n this.isOpenCopyLearnTraining = this.summary.learnTrainingOpenCopy;\r\n\r\n\r\n if (this.summary.onComponentInit != null) {\r\n this.summary.onComponentInit(this);\r\n\r\n }\r\n\r\n if (this.summary.editContent) {\r\n this.runCaretUpdater();\r\n }\r\n }\r\n\r\n\r\n\r\n clickSummary(): void {\r\n this.summary.selectSummary();\r\n }\r\n\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n checkCursorClickTarget(ev: any, element: Element): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === element;\r\n });\r\n }\r\n // @HostListener('document:click', ['$event']) outSummaryClick(ev: MouseEvent): void {\r\n // if (this.summary.selected\r\n // && this.elementRef\r\n // && !this.checkCursorClickClassName(ev, 'summary-item')\r\n // && !this.checkCursorClickTarget(ev, this.elementRef.nativeElement)\r\n // ) {\r\n // this.summaryListService.selectSummary(null);\r\n // }\r\n // if (this.summary.showTypeList && this.summaryTypeElementRef && !this.checkCursorClickTarget(ev, this.summaryTypeElementRef.nativeElement)) {\r\n // this.summary.closeTypeList();\r\n // }\r\n // if (this.summary.showMenu && this.summaryMenuElementRef && !this.checkCursorClickTarget(ev, this.summaryMenuElementRef.nativeElement)) {\r\n // this.summary.closeMenu();\r\n // }\r\n // }\r\n\r\n focusTitleInput(): void {\r\n setTimeout(() => {\r\n this.titleTextElementRef.nativeElement.focus();\r\n // let textNode: Node = null;\r\n // if (this.titleTextElementRef.nativeElement.childNodes.length === 0) {\r\n // textNode = document.createTextNode('');\r\n // this.titleTextElementRef.nativeElement.appendChild(textNode);\r\n // } else {\r\n // textNode = this.titleTextElementRef.nativeElement.childNodes[\r\n // this.titleTextElementRef.nativeElement.childNodes.length - 1\r\n // ];\r\n // }\r\n\r\n // if (this.titleTextElementRef.nativeElement.childNodes.length > 0) {\r\n // const range = document.getSelection().getRangeAt(0);\r\n // console.log(range);\r\n\r\n // range.selectNode(textNode);\r\n // // range.collapse();\r\n // }\r\n // this.updateContentClick();\r\n }, 1);\r\n }\r\n focusContentInput(): void {\r\n setTimeout(() => {\r\n if (this.contentTextElementRef) {\r\n this.contentTextElementRef.nativeElement.focus();\r\n }\r\n }, 1);\r\n }\r\n focusTagInput(): void {\r\n setTimeout(() => {\r\n this.tagInputElementRef.nativeElement.focus();\r\n }, 1);\r\n }\r\n confirmEditContent(): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.confirmEditContent();\r\n\r\n this.inputRange = null;\r\n this.caretUpdateSubsc.unsubscribe();\r\n this.caretUpdateSubsc = null;\r\n this.isShowSymbolWindow = false;\r\n\r\n console.log(this);\r\n\r\n }\r\n cancelEditContent(): void {\r\n this.summary.cancelEditContent();\r\n this.titleTextElementRef.nativeElement.textContent = this.summary._titleText;\r\n if (this.contentTextElementRef) {\r\n this.contentTextElementRef.nativeElement.textContent = this.summary._contentText;\r\n }\r\n\r\n this.inputRange = null;\r\n this.caretUpdateSubsc.unsubscribe();\r\n this.caretUpdateSubsc = null;\r\n this.isShowSymbolWindow = false;\r\n }\r\n copyTitle(): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // const text = this.summary.titleText.replace(/[\\s]+/g, '');\r\n const text = this.summary.titleText;\r\n TextCopy.copy(text);\r\n this.summaryListService.textCopyed$.next(null);\r\n }\r\n copyContent(): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // const text = this.summary.contentText.replace(/[\\s]+/g, '');\r\n const text = this.summary.contentText;\r\n TextCopy.copy(text);\r\n this.summaryListService.textCopyed$.next(null);\r\n }\r\n deleteSummary(): void {\r\n const compRef = this.deleteConfirmPopupOpenerService.openPopup(DeleteConfirmPopupType.Summary);\r\n compRef.instance.confirm.subscribe(() => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n compRef.instance.closePopup();\r\n return;\r\n }\r\n\r\n this.summary.deleteSummary();\r\n compRef.instance.closePopup();\r\n });\r\n }\r\n deleteSummaryBlock(): void {\r\n const compRef = this.deleteConfirmPopupOpenerService.openPopup(DeleteConfirmPopupType.SummaryBlock);\r\n compRef.instance.confirm.subscribe(() => {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n compRef.instance.closePopup();\r\n return;\r\n }\r\n\r\n this.summary.deleteSummaryBlock();\r\n compRef.instance.closePopup();\r\n });\r\n }\r\n\r\n getEditTime(): string {\r\n if (!this.summary.editTime) {\r\n return '';\r\n }\r\n\r\n return AppCommonStatic.convertTimeTickPastText1(this.summary.editTime, new Date().getTime());\r\n }\r\n\r\n enableMoveSummary(ev: MouseEvent): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n // this.summaryListService.updateMovingSummary(this.summary);\r\n // ev.preventDefault();\r\n setTimeout(() => {\r\n this.summaryListService.updateMovingSummary(this.summary);\r\n });\r\n }\r\n\r\n\r\n titleDoubleClick(ev: MouseEvent): void {\r\n if (!this.enableEdit) { return; }\r\n if (ev && this.checkCursorClickClassName(ev, 'copy-button')) { return }\r\n if (ev && this.checkCursorClickClassName(ev, 'gist')) { return }\r\n\r\n this.summary.enableEditContent();\r\n this.focusTitleInput();\r\n this.runCaretUpdater();\r\n }\r\n contentDoubleClick(ev: MouseEvent): void {\r\n if (!this.enableEdit) { return; }\r\n if (ev && this.checkCursorClickClassName(ev, 'copy-button')) { return }\r\n if (ev && this.checkCursorClickClassName(ev, 'gist')) { return }\r\n\r\n this.summary.enableEditContent();\r\n this.focusContentInput();\r\n this.runCaretUpdater();\r\n }\r\n enableEditTitleText(): void {\r\n this.titleDoubleClick(null);\r\n // this.summary.enableEditContent();\r\n // this.focusTitleInput();\r\n }\r\n enableEditContentText(): void {\r\n this.contentDoubleClick(null);\r\n }\r\n\r\n\r\n runCaretUpdater(): void {\r\n if (this.caretUpdateSubsc) { return; }\r\n\r\n this.caretUpdateSubsc = interval(100)\r\n .pipe(tap(() => {\r\n this.updateInputRange();\r\n this.updateCaret();\r\n })).subscribe();\r\n }\r\n tagDoubleclick(): void {\r\n if (!this.enableEdit) { return; }\r\n\r\n this.summary.enableEditTag();\r\n }\r\n toggleSymbolWindow(): void {\r\n this.isShowSymbolWindow = !this.isShowSymbolWindow;\r\n }\r\n insertSymbol(text: string): void {\r\n if (!this.summary.editing) { return; }\r\n if (!this.inputRange) { return; }\r\n\r\n const range: Range = this.inputRange;\r\n if (this.titleTextElementRef.nativeElement !== range.startContainer\r\n && !this.titleTextElementRef.nativeElement.contains(range.startContainer)\r\n && this.contentTextElementRef.nativeElement !== range.startContainer\r\n && !this.contentTextElementRef.nativeElement.contains(range.startContainer)\r\n ) {\r\n return;\r\n }\r\n\r\n if (range.toString().length > 0) {\r\n document.execCommand('delete');\r\n }\r\n\r\n const insertTextNode: Text = document.createTextNode(text);\r\n range.insertNode(insertTextNode);\r\n range.selectNode(insertTextNode);\r\n range.collapse();\r\n setTimeout(() => {\r\n const selection = getSelection();\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n\r\n this.summary.updateTitleText(this.titleTextElementRef.nativeElement);\r\n this.summary.updateContentText(this.contentTextElementRef.nativeElement);\r\n // (range.commonAncestorContainer as HTMLElement).focus();\r\n });\r\n // console.log(range);\r\n\r\n }\r\n updateInputRange(): void {\r\n const selection = getSelection();\r\n if (!this.summary.editing) { return; }\r\n if (selection.rangeCount === 0) { return; }\r\n\r\n const range = selection.getRangeAt(0);\r\n if (\r\n range.startContainer === this.titleTextElementRef.nativeElement\r\n || (this.contentTextElementRef && range.startContainer === this.contentTextElementRef.nativeElement)\r\n ) {\r\n this.inputRange = range.cloneRange();\r\n return;\r\n }\r\n\r\n if (range.startContainer instanceof Text) {\r\n if (\r\n this.titleTextElementRef.nativeElement.contains(range.startContainer)\r\n || (this.contentTextElementRef && this.contentTextElementRef.nativeElement.contains(range.startContainer))\r\n ) {\r\n this.inputRange = range.cloneRange();\r\n }\r\n }\r\n }\r\n updateCaret(): void {\r\n // caretElementRef\r\n if (!this.inputRange) { return; }\r\n\r\n const range: Range = this.inputRange;\r\n const textRect: ClientRect = range.getBoundingClientRect() as ClientRect;\r\n const containerRect: ClientRect = this.elementRef.nativeElement.getBoundingClientRect() as ClientRect;\r\n\r\n // console.log(textRect);\r\n // console.log(containerRect);\r\n\r\n\r\n this.caretStyle.left = textRect.left - containerRect.left + 'px';\r\n this.caretStyle.top = textRect.top - containerRect.top + 'px';\r\n this.caretStyle.height = textRect.height + 'px';\r\n }\r\n\r\n\r\n\r\n toggleGistMenu(): void {\r\n if (!this.enableEdit) { return; }\r\n this.summary.toggleGistMenu();\r\n }\r\n selectGist(item: SummaryGist): void {\r\n if (!this.enableEdit) { return; }\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.selectGist(item);\r\n }\r\n\r\n\r\n toggleOpenCopySummary(): void {\r\n if (!this.enableEdit) { return; }\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.updateOpenCopy(this.isOpenCopy);\r\n }\r\n\r\n toggleOpenCopyLearnTraining(): void {\r\n if (!this.enableEdit) { return; }\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.updateLearnTrainingOpenCopy(this.isOpenCopyLearnTraining);\r\n }\r\n\r\n clickTopCopySummary(): void {\r\n if (this.summaryListService.isCopySummaryLoginAlert) {\r\n alert('請先登入,再進行複製');\r\n return;\r\n }\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.copySummary();\r\n if (this.summary.onSummaryCopyed) {\r\n this.summary.onSummaryCopyed(this);\r\n }\r\n }\r\n\r\n clickTopCopyLearnTraining(): void {\r\n if (this.summaryListService.isCopySummaryLoginAlert) {\r\n alert('請先登入,再進行複製');\r\n return;\r\n }\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.copyLearnTraining();\r\n if (this.summary.onSummaryCopyed) {\r\n this.summary.onSummaryCopyed(this);\r\n }\r\n }\r\n\r\n clickPasteSummary(): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.pasteSummary()\r\n }\r\n\r\n\r\n clickDeleteTag(tag: any): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.deleteTag(tag);\r\n }\r\n addNewTag($ev: KeyboardEvent): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.addTag($ev);\r\n }\r\n\r\n changeSummaryType(typeItem: SummaryType): void {\r\n if (this.service.IsGuest) {\r\n this.service.openPopupBlockGuestFunction();\r\n return;\r\n }\r\n\r\n this.summary.selectSummaryType(typeItem);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{summary.ownerName}}
\r\n
{{getEditTime()}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{summary.linkedNumberText}}
\r\n
\r\n
\r\n
\r\n
選單
\r\n
\r\n
\r\n
\r\n
\r\n
編輯標題
\r\n
\r\n
\r\n
\r\n
編輯內容
\r\n
\r\n
\r\n
\r\n
單一刪除
\r\n
\r\n
\r\n
\r\n
全串刪除
\r\n
\r\n
\r\n
\r\n
學習訓練
\r\n
\r\n
\r\n
\r\n
全面複製
\r\n
\r\n
\r\n
\r\n
摘要標籤
\r\n
\r\n
\r\n
\r\n
摘要擴充
\r\n
\r\n
\r\n
\r\n
移動摘要
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全面複製
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
學習訓練
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
學習訓練
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全面複製
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{typeItem.text}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{summary.summaryType.text}}
\r\n
\r\n
\r\n
{{summary.sn}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
複製標題
\r\n
\r\n
\r\n
\r\n
{{summary.gist.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{item.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
複製內容
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{symbolText}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
貼上
\r\n
\r\n
確定
\r\n
取消
\r\n
\r\n
\r\n
\r\n
\r\n
{{tag.text}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{{summary.newTagText.length}}/15\r\n
\r\n
重複標籤
\r\n
\r\n
\r\n
\r\n
結束編輯
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
編輯標題
\r\n
\r\n
\r\n
\r\n
編輯內容
\r\n
\r\n
\r\n
\r\n
單一刪除
\r\n
\r\n
\r\n
\r\n
全串刪除
\r\n
\r\n
\r\n
\r\n
學習訓練
\r\n
\r\n
\r\n
\r\n
全面複製
\r\n
\r\n
\r\n
\r\n
摘要標籤
\r\n
\r\n
\r\n
\r\n
摘要擴充
\r\n
\r\n
\r\n
\r\n
移動摘要
\r\n
\r\n
\r\n
","import { Component, OnInit, HostListener, ElementRef, ViewChild, AfterContentInit, AfterViewInit } from '@angular/core';\r\nimport { SummaryWindowService } from './summary-window.service';\r\nimport { PopupManagerService } from '../popup-manager/popup-manager.service';\r\nimport { SummaryType } from '../summary-list/summary-type';\r\nimport { SummaryListService } from '../summary-list/summary-list.service';\r\nimport { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\nimport { SummaryWindowOption } from './summary-window-option';\r\nimport { SummaryListComponent } from '../summary-list/summary-list.component';\r\n\r\n@Component({\r\n selector: 'app-summary-window',\r\n templateUrl: './summary-window.component.html',\r\n styleUrls: ['./summary-window.component.scss'],\r\n providers: [SummaryListService],\r\n})\r\nexport class SummaryWindowComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild(SummaryListComponent, { static: true }) summaryListComponent: SummaryListComponent;\r\n\r\n get option(): SummaryWindowOption { return this.summaryWindowService.option; }\r\n get left(): number { return this.summaryWindowService.translateX; }\r\n\r\n // get windowShowed(): boolean { return this.summaryWindowService.showWindow; }\r\n keyword: string = '';\r\n get selectedSummaryType(): SummaryType { return this.summaryWindowService.selectedSummaryType; }\r\n get loading(): boolean { return this.summaryWindowService.loadingSummaryList; }\r\n\r\n get windowTitle(): string { return this.option ? this.option.title : ''; }\r\n get showMenuList(): boolean { return this.summaryWindowService.showMenuList; }\r\n get menuList(): SummaryType[] { return this.summaryWindowService.menuList; }\r\n\r\n cancelFixWindow: boolean = false;\r\n onClickCloseWindow: () => void;\r\n\r\n constructor(\r\n public elementRef: ElementRef,\r\n private popupManagerService: PopupManagerService,\r\n private summaryWindowService: SummaryWindowService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n console.log('init summary window');\r\n this.summaryWindowService.component = this;\r\n }\r\n ngAfterViewInit(): void {\r\n const summaryListService = this.summaryListComponent.summaryListService;\r\n this.summaryWindowService.summaryListService = summaryListService;\r\n\r\n // if (this.option.beforeAddSummaryCheck != null) {\r\n // this.summaryWindowService.summaryListService.beforeAddSummaryCheck = this.option.beforeAddSummaryCheck;\r\n // }\r\n summaryListService.beforeAddSummaryCheck = () => {\r\n if (this.option.beforeAddSummaryCheck != null) {\r\n return this.option.beforeAddSummaryCheck();\r\n } else {\r\n return true;\r\n }\r\n };\r\n // 選擇摘要\r\n summaryListService.selectedSummary$.subscribe(summary => {\r\n this.option.onSummarySelected(summary);\r\n });\r\n // 摘要內容變更,種類、內容編輯、新增標籤、刪除標籤\r\n summaryListService.summaryValueChange$.subscribe(summary => {\r\n this.option.updateSummary(summary);\r\n });\r\n // 擴充新摘要\r\n summaryListService.newSummaryConfirmEdit$.subscribe(summary => {\r\n this.option.addSummary(summary);\r\n });\r\n // 刪除摘要\r\n summaryListService.deleteSummary$.subscribe(list => {\r\n this.option.deleteSummary(list);\r\n });\r\n // 摘要移動\r\n summaryListService.moveEndSummary$.subscribe(summary => {\r\n // console.log('summary move');\r\n const list = summaryListService.getFlatSummaryList();\r\n this.option.updateSummaryListOrder(list);\r\n });\r\n\r\n }\r\n hideClickWindow(): void {\r\n if (this.cancelFixWindow) {\r\n if (this.onClickCloseWindow) {\r\n this.onClickCloseWindow();\r\n }\r\n return;\r\n }\r\n this.summaryWindowService.hideWindow();\r\n }\r\n // 檢查按下的按鍵\r\n @HostListener('document:keydown', ['$event']) closeLast(ev: KeyboardEvent) {\r\n if (ev.keyCode === 27 && !this.popupManagerService.closeLast()) {\r\n this.hideClickWindow();\r\n }\r\n }\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n checkCursorClickTarget(ev: any, targetElement: HTMLElement): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a === targetElement;\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) clickCheck(ev: KeyboardEvent) {\r\n if (\r\n this.summaryWindowService.windowShowed\r\n // && !this.summaryWindowService.showingWindow\r\n // && !this.summaryWindowService.option.linkingIssue\r\n && !this.checkCursorClickClassName(ev, 'summary-window')\r\n && !this.checkCursorClickClassName(ev, 'display-content-block_issue-sort-out')\r\n && !this.checkCursorClickClassName(ev, 'delete-confirm-popup')\r\n ) {\r\n this.hideClickWindow();\r\n }\r\n if (this.showMenuList\r\n && !this.checkCursorClickClassName(ev, 'summary-type-list')) {\r\n this.summaryWindowService.showMenuList = false;\r\n }\r\n }\r\n\r\n search(): void {\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n // const list = summaryListService.getFlatSummaryList();\r\n summaryListService.lastFilterSetting.keyword = this.keyword;\r\n summaryListService.updateSummaryListShowWithLastSetting();\r\n }\r\n clearKeyword(): void {\r\n this.keyword = '';\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n summaryListService.lastFilterSetting.keyword = this.keyword;\r\n summaryListService.updateSummaryListShowWithLastSetting();\r\n }\r\n\r\n toggleMenuList(): void {\r\n this.summaryWindowService.showMenuList = !this.summaryWindowService.showMenuList;\r\n this.summaryWindowService.updateMenuList();\r\n }\r\n selectSummaryType(type: SummaryType): void {\r\n this.summaryWindowService.selectedSummaryType = type;\r\n const summaryListService = this.summaryWindowService.summaryListService;\r\n if (type === SummaryType.summaryTypeAll) {\r\n summaryListService.lastFilterSetting.selectedTypes = Object.keys(SummaryTypeId)\r\n .filter(v => !isNaN(parseInt(v, 10)))\r\n .map(v => parseInt(v, 10));\r\n } else {\r\n summaryListService.lastFilterSetting.selectedTypes = [type.id];\r\n }\r\n summaryListService.updateSummaryListShowWithLastSetting();\r\n this.summaryWindowService.showMenuList = false;\r\n }\r\n recoveryType(): void {\r\n this.selectSummaryType(SummaryType.summaryTypeAll);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
{{windowTitle}}
\r\n
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\" (click)=\"clearKeyword()\">\r\n
清除
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{(selectedSummaryType?selectedSummaryType.text:'')}}
\r\n
\r\n
\r\n
\r\n
還原
\r\n
\r\n
\r\n
\r\n
\r\n
{{menuItem.text}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SummaryWindowComponent } from './summary-window.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SummaryListModule } from '../summary-list/summary-list.module';\r\n\r\n@NgModule({\r\n declarations: [SummaryWindowComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SummaryListModule,\r\n ],\r\n exports: [SummaryWindowComponent],\r\n // entryComponents: [SummaryWindowComponent],\r\n})\r\nexport class SummaryWindowModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, Observable, Subscriber } from 'rxjs';\r\nimport { SummaryType } from '../summary-list/summary-type';\r\nimport { SummaryListService } from '../summary-list/summary-list.service';\r\nimport { DetailInfoClickWindowOption } from '../detail-info-click-window/detail-info-click-window-option';\r\nimport { SummaryTypeId } from 'projects/desktop/src/app/root/root-main/child-content-storage-personal/judgment/summary-type-id.enum';\r\nimport { SummaryWindowOption } from './summary-window-option';\r\nimport { SummaryWindowComponent } from './summary-window.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SummaryWindowService {\r\n\r\n component: SummaryWindowComponent;\r\n\r\n translateX: number = -700;\r\n\r\n _option: SummaryWindowOption;\r\n get option(): SummaryWindowOption { return this._option; }\r\n\r\n onHideWindow$: Subject = new Subject();\r\n\r\n windowShowing: boolean = false;\r\n windowHiding: boolean = false;\r\n windowShowed: boolean = false;\r\n windowHideLock: boolean = false;\r\n\r\n searchedKeyword: string = '';\r\n selectedSummaryType: SummaryType = SummaryType.summaryTypeAll;\r\n selectedSummaryId: string;\r\n\r\n loadingSummaryList: boolean = false;\r\n menuList: SummaryType[] = [];\r\n showMenuList: boolean = false;\r\n\r\n typeOrderDict: { [key: number]: number } = {};\r\n typeDict: { [key: number]: SummaryType } = {};\r\n\r\n summaryListService: SummaryListService;\r\n constructor(\r\n // public summaryListService: SummaryListService\r\n ) { }\r\n\r\n showWindowObserver(): Observable {\r\n return new Observable((subscriber: Subscriber) => {\r\n this.option.onWindowShow();\r\n setTimeout(() => {\r\n this.option.onWindowAfterShow();\r\n subscriber.next(null);\r\n subscriber.complete();\r\n subscriber.unsubscribe();\r\n }, 100);\r\n });\r\n }\r\n hideWindowObserver(): Observable {\r\n return new Observable((subscriber: Subscriber) => {\r\n if (!this.windowHideLock && this.option) {\r\n this.option.onWindowHide();\r\n setTimeout(() => {\r\n this.option.onWindowAfterHide();\r\n subscriber.next();\r\n subscriber.complete();\r\n subscriber.unsubscribe();\r\n }, 100);\r\n } else {\r\n subscriber.next();\r\n subscriber.complete();\r\n subscriber.unsubscribe();\r\n }\r\n });\r\n }\r\n\r\n showWindow(): void {\r\n this.showWindowObserver().subscribe();\r\n }\r\n hideWindow(): void {\r\n this.hideWindowObserver().subscribe();\r\n }\r\n\r\n updateMenuTypeOrderDict(): void {\r\n this.typeOrderDict = {};\r\n this.typeDict = {};\r\n\r\n this.typeOrderDict[SummaryType.summaryTypeAll.id] = -1;\r\n this.typeDict[SummaryType.summaryTypeAll.id] = SummaryType.summaryTypeAll;\r\n\r\n const list: SummaryType[] = SummaryType.typeList;\r\n\r\n let typeIndex = 0;\r\n list.forEach(summaryType => {\r\n this.typeOrderDict[summaryType.id] = typeIndex;\r\n this.typeDict[summaryType.id] = summaryType;\r\n typeIndex++;\r\n });\r\n }\r\n updateMenuList(): void {\r\n this.updateMenuTypeOrderDict();\r\n\r\n this.menuList = [];\r\n const group = {};\r\n const list = this.summaryListService.getFlatSummaryList();\r\n list.forEach(summary => {\r\n if (group[summary.summaryType.id] == null) {\r\n group[summary.summaryType.id] = summary.summaryType;\r\n }\r\n });\r\n group[SummaryType.summaryTypeAll.id] = SummaryType.summaryTypeAll;\r\n\r\n this.menuList = Object.keys(group)\r\n .map(key => group[key])\r\n .filter(t => t !== this.selectedSummaryType)\r\n ;\r\n\r\n this.menuList.sort((a, b) => this.typeOrderDict[a.id] - this.typeOrderDict[b.id]);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-system-announce-popup',\n templateUrl: './system-announce-popup.component.html',\n styleUrls: ['./system-announce-popup.component.scss']\n})\nexport class SystemAnnouncePopupComponent implements OnInit {\n\n\n onClose: () => void;\n content:string ='';\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n
\n
\n \n
\n
\n
\n
\n
系統更新
\n
\n
{{content}}
\n
\n
\n
","import { FormsModule } from '@angular/forms';\nimport { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SystemAnnouncePopupComponent } from './system-announce-popup.component';\n\n\n\n@NgModule({\n declarations: [\n SystemAnnouncePopupComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n FramePopupCloseModule,\n ],\n exports: [\n SystemAnnouncePopupComponent\n ]\n})\nexport class SystemAnnouncePopupModule { }\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-team-announce-popup',\r\n templateUrl: './team-announce-popup.component.html',\r\n styleUrls: ['./team-announce-popup.component.scss']\r\n})\r\nexport class TeamAnnouncePopupComponent implements OnInit {\r\n\r\n teamName: string = '';\r\n teamPicture: string = '';\r\n message: string = '';\r\n teamId: string = '';\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() { }\r\n closePopup(): void {\r\n this.matDialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
團隊公告
\r\n
\r\n
\r\n
關閉 [Esc]
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TeamAnnouncePopupComponent } from './team-announce-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [TeamAnnouncePopupComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [TeamAnnouncePopupComponent]\r\n})\r\nexport class TeamAnnouncePopupModule { }\r\n","
\r\n
\r\n \r\n
\r\n
管理設定
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
升為管理者
\r\n
具有建立規則能力\r\n擅於維持組織規則\r\n經常上線使用系統\r\n協助管理團員筆記
\r\n
授權
\r\n
管理員
\r\n
\r\n
\r\n
\r\n
一般成員
\r\n
具有團隊合作需求\r\n樂於分享案件筆記\r\n經常上線使用系統\r\n積極經營知識寶庫
\r\n
設定
\r\n
\r\n
\r\n
\r\n
成員除名
\r\n
上線使用頻率甚低\r\n坐享他成不求貢獻\r\n沒有團隊合作精神\r\n不願遵守組織規則
\r\n
除名
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-team-member-option-popup',\r\n templateUrl: './team-member-option-popup.component.html',\r\n styleUrls: ['./team-member-option-popup.component.scss']\r\n})\r\nexport class TeamMemberOptionPopupComponent implements OnInit {\r\n\r\n\r\n onSetAdmin: () => void;\r\n onSetAdminPermission: () => void;\r\n onSetNormal: () => void;\r\n onRemoveMember: () => void;\r\n\r\n disableSetAdmin: boolean = true;\r\n disableSetAdminPermission: boolean = true;\r\n disableSetNormal: boolean = true;\r\n disableRemove: boolean = true;\r\n\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n closePopup(): void {\r\n this.matDialogRef.close();\r\n }\r\n setAdmin(): void {\r\n if (this.onSetAdmin) {\r\n this.onSetAdmin();\r\n }\r\n }\r\n setAdminPermission(): void {\r\n if (this.onSetAdminPermission) {\r\n this.onSetAdminPermission();\r\n }\r\n }\r\n setNormal(): void {\r\n if (this.onSetNormal) {\r\n this.onSetNormal();\r\n }\r\n }\r\n removeMember(): void {\r\n if (this.onRemoveMember) {\r\n this.onRemoveMember();\r\n }\r\n }\r\n}\r\n","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TeamMemberOptionPopupComponent } from './team-member-option-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [TeamMemberOptionPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [TeamMemberOptionPopupComponent]\r\n})\r\nexport class TeamMemberOptionPopupModule { }\r\n","import { AppCommonStatic } from 'projects/desktop/src/app/app-common-static';\r\n\r\nexport class TeamNoteCopyLog {\r\n date: number;\r\n admin_member_id: string;\r\n admin_member_picture: string;\r\n admin_member_name: string;\r\n from_member_id: string;\r\n from_member_picture: string;\r\n from_member_name: string;\r\n to_member_id: string;\r\n to_member_picture: string;\r\n to_member_name: string;\r\n\r\n\r\n dateText: string;\r\n\r\n updateText(): void {\r\n const timeTick = this.date;\r\n this.dateText = AppCommonStatic.convertTimeTickToTimeText1(timeTick);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
案件下載紀錄
\r\n \r\n
\r\n
\r\n
\r\n
近期下載紀錄
\r\n
\r\n
\r\n
{{log.dateText}}
\r\n
\r\n
{{log.admin_member_name}}
\r\n \r\n
下載至 個人倉庫
\r\n
\r\n \r\n
指定下載至
\r\n
\r\n
{{log.to_member_name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { TeamNoteCopyLog } from './team-note-copy-log';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-team-note-download-log-popup',\r\n templateUrl: './team-note-download-log-popup.component.html',\r\n styleUrls: ['./team-note-download-log-popup.component.scss']\r\n})\r\nexport class TeamNoteDownloadLogPopupComponent implements OnInit {\r\n\r\n list: TeamNoteCopyLog[] = [];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() { }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TeamNoteDownloadLogPopupComponent } from './team-note-download-log-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [TeamNoteDownloadLogPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [TeamNoteDownloadLogPopupComponent]\r\n})\r\nexport class TeamNoteDownloadLogPopupModule { }\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
學習紀錄
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
全部
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 全部\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 綠燈\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 橘燈\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 紅燈\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 灰燈\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item.timeString}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
掌握比例
\r\n
{{statusPercent1}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
綠燈
\r\n
\r\n
{{checkInStatusDict[1].toLocaleString()}}
\r\n
\r\n
\r\n
\r\n
橘燈
\r\n
\r\n
{{checkInStatusDict[2].toLocaleString()}}
\r\n
\r\n
\r\n
\r\n
紅燈
\r\n
\r\n
{{checkInStatusDict[3].toLocaleString()}}
\r\n
\r\n
\r\n
\r\n
灰燈
\r\n
\r\n
{{checkInStatusDict[0].toLocaleString()}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, HostListener } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { SingleOrMultiDataSet, Label, Color } from 'ng2-charts';\r\nimport { ChartOptions } from 'chart.js';\r\n\r\nclass TeamNoteOpenLog {\r\n name: string;\r\n pictrue: string;\r\n check_in_status: number;\r\n note_open_time: Date | string;\r\n timeString: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-team-note-open-log-popup',\r\n templateUrl: './team-note-open-log-popup.component.html',\r\n styleUrls: ['./team-note-open-log-popup.component.scss']\r\n})\r\nexport class TeamNoteOpenLogPopupComponent implements OnInit {\r\n keyword: string = '';\r\n\r\n selectedFilterCheckInStatus: number = -1;\r\n checkinClassName = {\r\n '-1': '',\r\n 0: 'gray',\r\n 1: 'green',\r\n 2: 'orange',\r\n 3: 'red'\r\n };\r\n\r\n checkInNoteCountGreen: number = 0;\r\n checkInNoteCountOrange: number = 0;\r\n checkInNoteCountRed: number = 0;\r\n checkInNoteCountGray: number = 0;\r\n isLoading = false;\r\n\r\n showMenu: boolean = false;\r\n\r\n baseList: TeamNoteOpenLog[] = [];\r\n list: TeamNoteOpenLog[] = [];\r\n // 尚未閱讀\r\n\r\n statusPercent1: string;\r\n\r\n checkInStatusDict: { [key: number]: number } = {\r\n // 灰\r\n 0: 0,\r\n // 綠\r\n 1: 0,\r\n // 橘\r\n 2: 0,\r\n // 紅\r\n 3: 0,\r\n };\r\n\r\n lightBarStyle1: CSSStyleDeclaration = {};\r\n lightBarStyle2: CSSStyleDeclaration = {};\r\n lightBarStyle3: CSSStyleDeclaration = {};\r\n lightBarStyle0: CSSStyleDeclaration = {};\r\n\r\n chartData: SingleOrMultiDataSet;\r\n chartLabel: Label[] = [\r\n '綠燈',\r\n '橘燈',\r\n '紅燈',\r\n '灰燈'\r\n ];\r\n chartColor: Color[] = [{\r\n backgroundColor: [\r\n '#51b941',\r\n '#ffbb00',\r\n '#ff3d3d',\r\n '#b8b8b8'\r\n ],\r\n borderWidth: 0,\r\n }];\r\n chartOptions: ChartOptions = {\r\n title: { display: false },\r\n legend: { display: false },\r\n // tooltips: { enabled: false },\r\n animation: { duration: 2500, },\r\n };\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) {\r\n this.lightBarStyle1.width = '0%';\r\n this.lightBarStyle2.width = '0%';\r\n this.lightBarStyle3.width = '0%';\r\n this.lightBarStyle0.width = '0%';\r\n }\r\n\r\n ngOnInit(): void { }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n setupList(list: TeamNoteOpenLog[]): void {\r\n this.baseList = list;\r\n\r\n this.checkInStatusDict[0] = this.baseList.filter(v => v.check_in_status <= 0).length;\r\n this.checkInStatusDict[1] = this.baseList.filter(v => v.check_in_status == 1).length;\r\n this.checkInStatusDict[2] = this.baseList.filter(v => v.check_in_status == 2).length;\r\n this.checkInStatusDict[3] = this.baseList.filter(v => v.check_in_status == 3).length;\r\n\r\n const totalMemberCount = this.baseList.length;\r\n this.lightBarStyle1.width = `${(this.checkInStatusDict[1] / totalMemberCount) * 100}%`;\r\n this.lightBarStyle2.width = `${(this.checkInStatusDict[2] / totalMemberCount) * 100}%`;\r\n this.lightBarStyle3.width = `${(this.checkInStatusDict[3] / totalMemberCount) * 100}%`;\r\n this.lightBarStyle0.width = `${(this.checkInStatusDict[0] / totalMemberCount) * 100}%`;\r\n\r\n this.chartData = [[\r\n this.checkInStatusDict[1],\r\n this.checkInStatusDict[2],\r\n this.checkInStatusDict[3],\r\n this.checkInStatusDict[0],\r\n ], []];\r\n\r\n this.statusPercent1 = Math.floor(this.checkInStatusDict[1] / totalMemberCount * 100) + '%';\r\n }\r\n\r\n setFilterCheckin(status: number): void {\r\n this.selectedFilterCheckInStatus = status;\r\n this.showMenu = false;\r\n\r\n this.updateList(this.keyword, this.selectedFilterCheckInStatus);\r\n }\r\n updateList(keyword: string, status: number): void {\r\n if (keyword == '' && status < 0) {\r\n this.list = this.baseList;\r\n return;\r\n }\r\n\r\n this.list = this.baseList\r\n .filter(item => {\r\n if (status >= 0) {\r\n return item.check_in_status == status;\r\n }\r\n return true;\r\n })\r\n .filter(item => item.name.toLowerCase().indexOf(keyword.toLowerCase()) >= 0);\r\n }\r\n toggleMenu(): void {\r\n this.showMenu = !this.showMenu;\r\n }\r\n\r\n clearKeyword(): void {\r\n this.keyword = '';\r\n this.updateList(this.keyword, this.selectedFilterCheckInStatus);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n checkCursorClickClassName(ev: any, className: string): boolean {\r\n const path = ev.path || (ev.composedPath && ev.composedPath());\r\n\r\n return path.filter(a => a instanceof HTMLElement).some((a: Element) => {\r\n return a.classList.contains(className);\r\n });\r\n }\r\n @HostListener('document:click', ['$event']) checkOnClick(ev: MouseEvent): void {\r\n if (this.showMenu && !this.checkCursorClickClassName(ev, 'checkin-drop-menu')) {\r\n this.showMenu = false;\r\n }\r\n }\r\n}\r\n","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TeamNoteOpenLogPopupComponent } from './team-note-open-log-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { PipeHighlightModule } from '../pipe-highlight/pipe-highlight.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [TeamNoteOpenLogPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ChartsModule,\r\n PipeHighlightModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [TeamNoteOpenLogPopupComponent]\r\n})\r\nexport class TeamNoteOpenLogPopupModule { }\r\n","export enum TeamNoteStatusId {\r\n None = 0,\r\n Unpublished = 1,\r\n Finish = 2,\r\n WaitFix = 3,\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { TeamNoteStatus } from './team-note-status';\r\nimport { TeamNoteStatusId } from './team-note-status-id.enum';\r\n\r\n@Component({\r\n selector: 'app-team-note-status-popup',\r\n templateUrl: './team-note-status-popup.component.html',\r\n styleUrls: ['./team-note-status-popup.component.scss']\r\n})\r\nexport class TeamNoteStatusPopupComponent implements OnInit {\r\n teamNoteStatusId: any = TeamNoteStatusId;\r\n list: TeamNoteStatus[] = [];\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n closePopup(): void {\r\n this.matDialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
評定紀錄
\r\n \r\n
\r\n
\r\n
\r\n
近期評定紀錄
\r\n
\r\n
\r\n
\r\n
{{status.dateText}}
\r\n
{{status.statusText}}
\r\n {{'(200)'}}\r\n {{'('+status.point+')'}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TeamNoteStatusPopupComponent } from './team-note-status-popup.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [TeamNoteStatusPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [TeamNoteStatusPopupComponent]\r\n})\r\nexport class TeamNoteStatusPopupModule { }\r\n","import { TeamNoteStatusId } from './team-note-status-id.enum';\r\n\r\nexport class TeamNoteStatus {\r\n date: string;\r\n status: TeamNoteStatusId;\r\n point: number;\r\n\r\n dateText: string;\r\n statusText: string;\r\n className: string;\r\n\r\n updateData(): void {\r\n const dateNumber = Date.parse(this.date);\r\n const date = new Date(dateNumber);\r\n\r\n const year = date.getFullYear();\r\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n const day = (date.getDate()).toString().padStart(2, '0');\r\n const min = date.getMinutes().toString().padStart(2, '0');\r\n const hr = date.getHours().toString().padStart(2, '0');\r\n this.dateText = `${year}/${month}/${day} ${hr}:${min}`;\r\n\r\n if (this.status === TeamNoteStatusId.Unpublished) {\r\n this.statusText = '未評定';\r\n this.className = 'unpublished';\r\n } else if (this.status === TeamNoteStatusId.Finish) {\r\n this.statusText = '已完成';\r\n this.className = 'finish';\r\n } else if (this.status === TeamNoteStatusId.WaitFix) {\r\n this.statusText = '待修正';\r\n this.className = 'wait-fix';\r\n }\r\n\r\n }\r\n}\r\n","import { AppService } from 'projects/desktop/src/app/app.service';\r\nimport { Tool } from '../tool/tool';\r\n\r\nexport class NotePutInTeam {\r\n team_id: string;\r\n team_picture: string;\r\n teamPictureStyle: CSSStyleDeclaration = {} as CSSStyleDeclaration;\r\n team_name: string;\r\n\r\n is_note_in_team: boolean;\r\n\r\n copy_time: Date;\r\n time_text: string;\r\n\r\n is_open_author_download: boolean;\r\n disable: boolean;\r\n // static convertFromNotePutinTeamObject(teamCopyObj: { [key: string]: Date }): NotePutInTeam[] {\r\n // return Object.keys(teamCopyObj)\r\n // .map(team_id => {\r\n // const npit = new NotePutInTeam();\r\n // npit.team_id = team_id;\r\n // npit.time = teamCopyObj[team_id];\r\n // npit.is_putin = npit.time.getTime() > 0;\r\n // return npit;\r\n // });\r\n // }\r\n updatePictureStyle(): void {\r\n this.teamPictureStyle = {} as CSSStyleDeclaration;\r\n this.teamPictureStyle.backgroundImage = `url(${this.team_picture})`;\r\n }\r\n updateTimeText(): void {\r\n this.time_text = '';\r\n if (this.copy_time != null && this.copy_time.getTime() > 0) {\r\n // this.time_text = Tool.convertTimeText(this.copy_time.getTime());\r\n this.time_text = Tool.convertTimeTickToTimeText2(this.copy_time.getTime());\r\n }\r\n }\r\n}\r\n","export class TextCopy {\r\n static copy(text: string): boolean {\r\n const textarea = document.createElement('textarea');\r\n textarea.textContent = text;\r\n textarea.style.position = 'fixed';\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n try {\r\n document.execCommand('cut');\r\n } catch (ex) {\r\n console.warn('Copy to clipboard failed.', ex);\r\n return false;\r\n } finally {\r\n document.body.removeChild(textarea);\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-text-input-popup',\r\n templateUrl: './text-input-popup.component.html',\r\n styleUrls: ['./text-input-popup.component.scss']\r\n})\r\nexport class TextInputPopupComponent implements OnInit {\r\n\r\n titleClass: string = '';\r\n title_name: string = '團隊公告';\r\n text: string = '';\r\n maxLength: number = 3000;\r\n onConfirm: () => void;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n closePopup(): void {\r\n this.dialogRef.close();\r\n }\r\n onTextChange(): void {\r\n\r\n }\r\n clickSubmit(): void {\r\n if (this.onConfirm != null) {\r\n this.onConfirm();\r\n }\r\n }\r\n reset(): void {\r\n this.text = '';\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
{{title_name}}
\r\n \r\n
\r\n
\r\n
\r\n \r\n
{{text.length}} / {{maxLength}}
\r\n
\r\n
\r\n
\r\n 確認送出
\r\n
清除重填
\r\n
\r\n
\r\n
\r\n
","import { FramePopupCloseModule } from './../../../mobile/src/app/common/frame-popup-close/frame-popup-close.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TextInputPopupComponent } from './text-input-popup.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [TextInputPopupComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n FramePopupCloseModule,\r\n ],\r\n exports: [TextInputPopupComponent]\r\n})\r\nexport class TextInputPopupModule { }\r\n","export class TextIndexNode {\r\n index: number;\r\n node: Text;\r\n offset: number;\r\n text: string;\r\n /** 主要在裁判、判解用到 */\r\n // range: Range;\r\n /** 主要在裁判、判解用到 */\r\n lineNumber: number;\r\n lineIndex: number;\r\n}\r\n","// export class TextStyleNodeFilter implements NodeFilter\r\nexport class TextStyleNodeFilter {\r\n static textStyleTagNameDict: { [key: string]: number } = {\r\n '#text': 1,\r\n 'FONT': 1,\r\n 'B': 1,\r\n 'U': 1,\r\n 'SPAN': 1,\r\n };\r\n acceptNode(node: Node): number {\r\n if (TextStyleNodeFilter.textStyleTagNameDict[node.nodeName]) {\r\n return NodeFilter.FILTER_ACCEPT;\r\n } else {\r\n return NodeFilter.FILTER_SKIP;\r\n }\r\n }\r\n}\r\n","export enum TextStyleType {\r\n NONE = 0,\r\n FontFamily = 1,\r\n Bold = 2,\r\n Underline = 3,\r\n ForeColor = 4,\r\n BackColor = 5\r\n}\r\n","import { TextIndexNode } from './text-index-node';\r\nimport { TextStyleType } from './text-style-type-id.enum';\r\nimport { TextStyleNodeFilter } from './text-style-node-filter';\r\nimport { Serializable } from '../serializable';\r\n\r\nexport class TextStyle {\r\n\r\n static skipChars: any = {\r\n '\\n': 1,\r\n '\\r': 1\r\n };\r\n static regexSkip: RegExp = new RegExp(/[\\r\\n]/, 'g');\r\n start_text_index: number;\r\n end_text_index: number;\r\n /** 1_font, 2_bold, 3_underline, 4_fontcolor, 5_bgcolor */\r\n type: TextStyleType;\r\n value: any;\r\n\r\n static parseSaveString(saveString: string): TextStyle {\r\n const texts = saveString.split('㏑');\r\n let value: any = texts[3];\r\n const type = parseInt(texts[2], 10);\r\n if (type === TextStyleType.Bold\r\n || type === TextStyleType.Underline) {\r\n value = 1;\r\n }\r\n\r\n const textStyle = TextStyle.create(\r\n parseInt(texts[0], 10),\r\n parseInt(texts[1], 10),\r\n type,\r\n value\r\n );\r\n return textStyle;\r\n }\r\n static create(\r\n start_text_index: number,\r\n end_text_index: number,\r\n type: TextStyleType,\r\n value: any\r\n ): TextStyle {\r\n const t = new TextStyle();\r\n t.start_text_index = start_text_index;\r\n t.end_text_index = end_text_index;\r\n t.type = type;\r\n t.value = value;\r\n return t;\r\n }\r\n\r\n /** 取element中所有的text node */\r\n static findTextNodesFromElement(targetElement: Element | Node): Text[] {\r\n const walker = document.createTreeWalker(targetElement, NodeFilter.SHOW_TEXT, null);\r\n let node: Node;\r\n const result = [];\r\n while (node = walker.nextNode()) {\r\n result.push(node);\r\n }\r\n return result;\r\n }\r\n /**\r\n * 取element中,所有會轉換成字型紀錄的node,\r\n * 在TextStyleNodeFilter中設定要過濾的node\r\n */\r\n static getStyleNodeListFromElement(contentElement: Element): Node[] {\r\n const walker = document.createTreeWalker(contentElement, NodeFilter.SHOW_ALL, new TextStyleNodeFilter());\r\n let node: Node;\r\n const result = [];\r\n while (node = walker.nextNode()) {\r\n result.push(node);\r\n }\r\n return result;\r\n }\r\n\r\n /** 轉換element中的所有文字=>文字索引 */\r\n static getTextIndexNodeListFromElement(contentElement: Element | Node): TextIndexNode[] {\r\n const textNodes = TextStyle.findTextNodesFromElement(contentElement);\r\n const textNodeList: TextIndexNode[] = [];\r\n let index = 0;\r\n textNodes.forEach((n, i) => {\r\n for (let j = 0; j < n.textContent.length; j++) {\r\n const textChar = n.textContent[j];\r\n\r\n if (TextStyle.skipChars[textChar]) {\r\n continue;\r\n }\r\n\r\n const tin = new TextIndexNode();\r\n tin.index = index;\r\n tin.node = n;\r\n tin.offset = j;\r\n tin.text = textChar;\r\n textNodeList.push(tin);\r\n index++;\r\n }\r\n });\r\n\r\n return textNodeList;\r\n }\r\n\r\n /** 轉換element中的所有文字=>文字索引 */\r\n static getTextIndexNodeListFromText(text: string): TextIndexNode[] {\r\n const textNodeList: TextIndexNode[] = [];\r\n let index = 0;\r\n for (let j = 0; j < text.length; j++) {\r\n const textChar = text[j];\r\n\r\n if (TextStyle.skipChars[textChar]) {\r\n continue;\r\n }\r\n\r\n const tin = new TextIndexNode();\r\n tin.index = index;\r\n // tin.node = n;\r\n tin.offset = j;\r\n tin.text = textChar;\r\n textNodeList.push(tin);\r\n index++;\r\n }\r\n\r\n return textNodeList;\r\n }\r\n\r\n\r\n /**\r\n * 從文字索引位置建立range,\r\n * 不做反向轉換,textStyleList直接從element整個重新分析抓取\r\n */\r\n static convertTextIndexToRange(contentElement: Element, startTextIndex: number, endTextIndex: number): Range {\r\n const range = document.createRange();\r\n\r\n const textIndexNodeList = TextStyle.getTextIndexNodeListFromElement(contentElement);\r\n if (startTextIndex > textIndexNodeList.length - 1) {\r\n startTextIndex = textIndexNodeList.length - 1;\r\n }\r\n if (endTextIndex > textIndexNodeList.length - 1) {\r\n endTextIndex = textIndexNodeList.length - 1;\r\n }\r\n if (startTextIndex < 0) {\r\n startTextIndex = 0;\r\n }\r\n if (endTextIndex < 0) {\r\n endTextIndex = 0;\r\n }\r\n\r\n if (startTextIndex === -1 && endTextIndex === -1) {\r\n range.setStart(contentElement, 0);\r\n range.setEnd(contentElement, 0);\r\n return range;\r\n }\r\n\r\n const startTextIndexNode = textIndexNodeList[startTextIndex];\r\n const endTextIndexNode = textIndexNodeList[endTextIndex];\r\n range.setStart(startTextIndexNode.node, startTextIndexNode.offset);\r\n range.setEnd(endTextIndexNode.node, endTextIndexNode.offset + 1);\r\n return range;\r\n }\r\n /**\r\n * 從文字索引位置建立range,\r\n * 不做反向轉換,textStyleList直接從element整個重新分析抓取\r\n */\r\n static convertTextIndexToRangeForLawArticleList(contentElement: Element, startTextIndex: number, endTextIndex: number): Range {\r\n const range = document.createRange();\r\n\r\n const textIndexNodeList = TextStyle.getTextIndexNodeListFromElement(contentElement);\r\n const startTextIndexNode = textIndexNodeList[startTextIndex];\r\n const endTextIndexNode = textIndexNodeList[endTextIndex];\r\n\r\n if (startTextIndex === -1 && endTextIndex === -1) {\r\n range.setStart(contentElement, 0);\r\n range.setEnd(contentElement, 0);\r\n return range;\r\n }\r\n\r\n range.setStart(startTextIndexNode.node, startTextIndexNode.offset);\r\n range.setEnd(endTextIndexNode.node, endTextIndexNode.offset + 1);\r\n return range;\r\n }\r\n static convertTextIndexToRangeFromTextIndexList(textIndexNodeList: TextIndexNode[], startTextIndex: number, endTextIndex: number): Range {\r\n const range = document.createRange();\r\n if (startTextIndex > textIndexNodeList.length - 1) {\r\n startTextIndex = textIndexNodeList.length - 1;\r\n }\r\n if (endTextIndex > textIndexNodeList.length - 1) {\r\n endTextIndex = textIndexNodeList.length - 1;\r\n }\r\n if (startTextIndex < 0) {\r\n startTextIndex = 0;\r\n }\r\n if (endTextIndex < 0) {\r\n endTextIndex = 0;\r\n }\r\n // if (startTextIndex === -1 && endTextIndex === -1) {\r\n // range.setStart(contentElement, 0);\r\n // range.setEnd(contentElement, 0);\r\n // return range;\r\n // }\r\n\r\n const startTextIndexNode = textIndexNodeList[startTextIndex];\r\n const endTextIndexNode = textIndexNodeList[endTextIndex];\r\n range.setStart(startTextIndexNode.node, startTextIndexNode.offset);\r\n range.setEnd(endTextIndexNode.node, endTextIndexNode.offset + 1);\r\n return range;\r\n }\r\n /**\r\n * 把range轉換=>文字索引位置\r\n */\r\n static convertRangeToTextIndex(element: HTMLElement, range: Range): number[] {\r\n const textIndexNodeList = this.getTextIndexNodeListFromElement(element);\r\n let startNode = range.startContainer;\r\n\r\n let startOffset = range.startOffset -\r\n (range.startContainer.textContent.substring(0, range.startOffset).match(TextStyle.regexSkip) || []).length;\r\n\r\n if (startNode.nodeName !== '#text') {\r\n startNode = TextStyle.findTextNodesFromElement(range.startContainer)[range.startOffset];\r\n startOffset = 0;\r\n }\r\n if (startNode == null) {\r\n // console.log('start node null');\r\n const _range = document.createRange();\r\n _range.setStart(element, 0);\r\n _range.setEnd(range.startContainer, range.startOffset);\r\n const headLength = _range.toString().replace(/[\\r\\n]/g, '').length;\r\n const startTin = textIndexNodeList[headLength];\r\n startNode = startTin.node;\r\n startOffset = startTin.offset;\r\n }\r\n\r\n const startTextIndex = textIndexNodeList.findIndex(v => v.node === startNode);\r\n const startTextIndexNode = textIndexNodeList[startTextIndex + startOffset];\r\n\r\n let rangeText = range.toString();\r\n rangeText = rangeText.replace(TextStyle.regexSkip, '');\r\n let endTextIndex = startTextIndexNode.index + rangeText.length - 1;\r\n if (endTextIndex < 0) {\r\n endTextIndex = 0;\r\n }\r\n const endTextIndexNode = textIndexNodeList[endTextIndex];\r\n\r\n return [startTextIndexNode.index, endTextIndexNode.index];\r\n }\r\n /**\r\n * 把range轉換=>文字索引位置 [起始, 結束]\r\n */\r\n static convertRangeToTextIndexForLawArticleList(element: HTMLElement, range: Range): number[] {\r\n const textIndexNodeList = this.getTextIndexNodeListFromElement(element);\r\n let startNodeIndex = 0;\r\n if (range.startContainer.nodeName == '#text') {\r\n startNodeIndex = textIndexNodeList.findIndex(v => v.node == range.startContainer);\r\n startNodeIndex += range.startOffset;\r\n } else {\r\n const startNode = range.startContainer.childNodes[range.startOffset];\r\n startNodeIndex = textIndexNodeList.findIndex(v => v.node == startNode);\r\n // startNodeIndex = textIndexNodeList.findIndex(v => v.node.parentNode == range.startContainer);\r\n }\r\n\r\n\r\n let endNodeIndex = 0;\r\n if (range.endContainer.nodeName == '#text') {\r\n endNodeIndex = textIndexNodeList.findIndex(v => v.node == range.endContainer);\r\n endNodeIndex += range.endOffset - 1;\r\n } else {\r\n const endNode = range.endContainer.childNodes[range.endOffset];\r\n endNodeIndex = textIndexNodeList.findIndex(v => v.node == endNode);\r\n // endNodeIndex = textIndexNodeList.findIndex(v => v.node.parentNode == range.endContainer);\r\n }\r\n\r\n\r\n return [startNodeIndex, endNodeIndex];\r\n }\r\n static convertRangeToTextIndexFromTextIndexList(textIndexNodeList: TextIndexNode[], range: Range): number[] {\r\n let startNode = range.startContainer;\r\n\r\n let startOffset = range.startOffset -\r\n (range.startContainer.textContent.substring(0, range.startOffset).match(TextStyle.regexSkip) || []).length;\r\n\r\n if (startNode.nodeName !== '#text') {\r\n startNode = TextStyle.findTextNodesFromElement(range.startContainer)[range.startOffset];\r\n startOffset = 0;\r\n }\r\n\r\n const startTextIndex = textIndexNodeList.findIndex(v => v.node === startNode);\r\n const startTextIndexNode = textIndexNodeList[startTextIndex + startOffset];\r\n\r\n let rangeText = range.toString();\r\n rangeText = rangeText.replace(TextStyle.regexSkip, '');\r\n const endTextIndexNode = textIndexNodeList[startTextIndexNode.index + rangeText.length - 1];\r\n\r\n return [startTextIndexNode.index, endTextIndexNode.index];\r\n }\r\n\r\n /** 轉換element內容為textStyle清單,文字計算包含換行 (innerText) */\r\n static getTextStyleListFromElement(contentElement: Element): TextStyle[] {\r\n const styleNodeList = TextStyle.getStyleNodeListFromElement(contentElement)\r\n .filter(v => {\r\n if (v.textContent.replace(TextStyle.regexSkip, '').length === 0) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n const result: TextStyle[] = [];\r\n\r\n let textIndex: number = 0;\r\n styleNodeList.forEach((n, i) => {\r\n if (n.nodeName === '#text') {\r\n textIndex += n.textContent.replace(TextStyle.regexSkip, '').length;\r\n } else {\r\n const en: HTMLElement = n;\r\n const textLength: number = en.innerText.replace(TextStyle.regexSkip, '').length;\r\n if (en.hasAttribute('face')) {\r\n result.push(TextStyle.create(\r\n textIndex,\r\n textIndex + textLength - 1,\r\n TextStyleType.FontFamily,\r\n en.getAttribute('face')\r\n ));\r\n }\r\n if (en.nodeName === 'B') {\r\n result.push(TextStyle.create(\r\n textIndex,\r\n textIndex + textLength - 1,\r\n TextStyleType.Bold,\r\n 1\r\n ));\r\n }\r\n if (en.nodeName === 'U') {\r\n result.push(TextStyle.create(\r\n textIndex,\r\n textIndex + textLength - 1,\r\n TextStyleType.Underline,\r\n 1\r\n ));\r\n }\r\n if (en.hasAttribute('color')) {\r\n result.push(TextStyle.create(\r\n textIndex,\r\n textIndex + textLength - 1,\r\n TextStyleType.ForeColor,\r\n en.getAttribute('color')\r\n ));\r\n }\r\n if (en.hasAttribute('style') && en.style.backgroundColor) {\r\n result.push(TextStyle.create(\r\n textIndex,\r\n textIndex + textLength - 1,\r\n TextStyleType.BackColor,\r\n en.style.backgroundColor\r\n ));\r\n }\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n // /** 轉換element內容為textStyle清單,文字計算不包含換行 (textContent) */\r\n // static getTextStyleListFromElement(contentElement: Element): TextStyle[] {\r\n // const styleNodeList = TextStyle.getStyleNodeListFromElement(contentElement)\r\n // .filter(v => {\r\n // if (v.textContent.length === 0) {\r\n // return false;\r\n // }\r\n // return true;\r\n // });\r\n\r\n // const result: TextStyle[] = [];\r\n\r\n // let textIndex: number = 0;\r\n // styleNodeList.forEach((n, i) => {\r\n // if (n.nodeName === '#text') {\r\n // textIndex += n.textContent.length;\r\n // } else {\r\n // const en: HTMLElement = n;\r\n // if (en.hasAttribute('face')) {\r\n // result.push(TextStyle.create(\r\n // textIndex,\r\n // textIndex + en.textContent.length - 1,\r\n // TextStyleType.FontFamily,\r\n // en.getAttribute('face')\r\n // ));\r\n // }\r\n // if (en.nodeName === 'B') {\r\n // result.push(TextStyle.create(\r\n // textIndex,\r\n // textIndex + en.textContent.length - 1,\r\n // TextStyleType.Bold,\r\n // 1\r\n // ));\r\n // }\r\n // if (en.nodeName === 'U') {\r\n // result.push(TextStyle.create(\r\n // textIndex,\r\n // textIndex + en.textContent.length - 1,\r\n // TextStyleType.Underline,\r\n // 1\r\n // ));\r\n // }\r\n // if (en.hasAttribute('color')) {\r\n // result.push(TextStyle.create(\r\n // textIndex,\r\n // textIndex + en.textContent.length - 1,\r\n // TextStyleType.ForeColor,\r\n // en.getAttribute('color')\r\n // ));\r\n // }\r\n // if (en.hasAttribute('style') && en.style.backgroundColor) {\r\n // result.push(TextStyle.create(\r\n // textIndex,\r\n // textIndex + en.textContent.length - 1,\r\n // TextStyleType.BackColor,\r\n // en.style.backgroundColor\r\n // ));\r\n // }\r\n // }\r\n // });\r\n\r\n // return result;\r\n // }\r\n\r\n\r\n static createHighlightCanvasFromRange(range: Range): HTMLCanvasElement {\r\n const bRect = range.getBoundingClientRect();\r\n const canvas = document.createElement('canvas');\r\n canvas.width = bRect.width;\r\n canvas.height = bRect.height;\r\n const ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(255, 225, 104, 1.0)';\r\n\r\n const textIndexList = TextStyle.getTextIndexNodeListFromElement(range.commonAncestorContainer);\r\n const tRange = document.createRange();\r\n textIndexList.forEach(ti => {\r\n // tRange.selectNode(ti.node);\r\n tRange.setStart(ti.node, ti.offset);\r\n tRange.setEnd(ti.node, ti.offset + 1);\r\n const rect = tRange.getBoundingClientRect();\r\n const left = Math.round(rect.left - bRect.left);\r\n const top = Math.round(rect.top - bRect.top);\r\n ctx.fillRect(left, top, rect.width, rect.height);\r\n });\r\n // const rectList = range.getClientRects();\r\n // for (let i = 0; i < rectList.length; i++) {\r\n // const rect = rectList.item(i);\r\n // const left = Math.round(rect.left - bRect.left);\r\n // const top = Math.round(rect.top - bRect.top);\r\n // ctx.fillRect(left, top, rect.width, rect.height);\r\n // }\r\n\r\n return canvas;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /** with */\r\n static colorHexToRGBA(hex: string, alpha: number): string {\r\n let _hex: string = hex;\r\n if (hex.indexOf('#') > -1) {\r\n _hex = hex.substring(1);\r\n }\r\n if (_hex.length === 3) {\r\n _hex = _hex[0] + _hex[0] + _hex[1] + _hex[1] + _hex[2] + _hex[2];\r\n }\r\n const r: number = parseInt(_hex.substring(0, 2), 16);\r\n const g: number = parseInt(_hex.substring(2, 4), 16);\r\n const b: number = parseInt(_hex.substring(4, 6), 16);\r\n return `rgba(${r},${g},${b},${alpha})`;\r\n }\r\n\r\n /**\r\n * TextStyle的字型設定只用在讀取紀錄,\r\n * 文字工具要用document.execCommand才能做到粗體、底線切換\r\n * */\r\n setElementTextStyle(element: HTMLElement): void {\r\n const range = TextStyle.convertTextIndexToRange(element, this.start_text_index, this.end_text_index);\r\n\r\n if (this.type === TextStyleType.FontFamily) {\r\n const font = document.createElement('font');\r\n font.face = this.value;\r\n font.appendChild(range.extractContents());\r\n range.insertNode(font);\r\n } else if (this.type === TextStyleType.Bold) {\r\n const b = document.createElement('b');\r\n b.appendChild(range.extractContents());\r\n range.insertNode(b);\r\n } else if (this.type === TextStyleType.Underline) {\r\n const u = document.createElement('u');\r\n u.appendChild(range.extractContents());\r\n range.insertNode(u);\r\n } else if (this.type === TextStyleType.ForeColor) {\r\n const font = document.createElement('font');\r\n font.color = this.value;\r\n font.appendChild(range.extractContents());\r\n range.insertNode(font);\r\n } else if (this.type === TextStyleType.BackColor) {\r\n const span = document.createElement('span');\r\n span.style.backgroundColor = this.value;\r\n span.appendChild(range.extractContents());\r\n range.insertNode(span);\r\n }\r\n }\r\n\r\n\r\n\r\n toSaveString(): string {\r\n return [\r\n this.start_text_index,\r\n this.end_text_index,\r\n this.type,\r\n this.value\r\n ].join('㏑');\r\n }\r\n clone(): TextStyle {\r\n const ts = new TextStyle();\r\n ts.type = this.type;\r\n ts.value = this.value;\r\n ts.start_text_index = this.start_text_index;\r\n ts.end_text_index = this.end_text_index;\r\n return ts;\r\n }\r\n}\r\n","import { isNumber } from 'util';\r\n\r\nexport class Tool {\r\n /**\r\n * 數字向左推0,2位數, 1->01\r\n */\r\n static padNumber(number: number): string {\r\n let result = '';\r\n if (number == null\r\n || number < 1) {\r\n result = '';\r\n } else if (number < 10) {\r\n result = number.toString().padStart(2, '0');\r\n } else if (number < 1000) {\r\n result = number.toString();\r\n } else {\r\n result = number.toLocaleString();\r\n }\r\n\r\n return result;\r\n }\r\n static convertText_CamelCaseToLowerDash(text: string): string {\r\n if (!text || text.length === 0) {\r\n return '';\r\n }\r\n\r\n let temp = text[0].toLowerCase();\r\n\r\n for (let i = 1; i < text.length; i++) {\r\n const chr = text.charAt(i);\r\n if (!chr\r\n || isNumber(chr)) {\r\n temp += chr;\r\n } else if (chr === chr.toUpperCase()) {\r\n if (text[i - 1] === '-') {\r\n temp += chr.toLowerCase();\r\n } else {\r\n temp += '-' + chr.toLowerCase();\r\n }\r\n } else {\r\n temp += chr;\r\n }\r\n }\r\n return temp;\r\n }\r\n static convertTimeText(jsTick: number): string {\r\n return Tool.convertTimeTickPastText1(jsTick, new Date().getTime());\r\n }\r\n static convertTimeTickPastText1(startTickZone: number, stopTickZone: number): string {\r\n const startDateZone = new Date(startTickZone);\r\n const stopDateZone = new Date(stopTickZone);\r\n const todayStartDateZone = new Date(stopDateZone.getFullYear() + '/' + (stopDateZone.getMonth() + 1) + '/' + stopDateZone.getDate() + 'UTC+8');\r\n const todayStartTickZone = todayStartDateZone.getTime();\r\n const oneDayTick = 1000 * 60 * 60 * 24;\r\n const todayStopDateZone = new Date(todayStartDateZone.getTime() + oneDayTick);\r\n const todayStopTickZone = todayStopDateZone.getTime();\r\n const todayHalfTickZone = todayStartTickZone + (oneDayTick / 2);\r\n const currentYearTickZone = new Date(stopDateZone.getFullYear() + '/1/1 UTC+8').getTime();\r\n\r\n if (startTickZone < currentYearTickZone) {\r\n return (startDateZone.getFullYear() - 1911) + '年' +\r\n (startDateZone.getMonth() + 1).toString() + '月' +\r\n startDateZone.getDate().toString() + '日';\r\n } else if (startTickZone < todayStartTickZone) {\r\n return (startDateZone.getMonth() + 1).toString() + '月' +\r\n startDateZone.getDate().toString() + '日';\r\n } else if (todayStopTickZone <= startTickZone) {\r\n return (startDateZone.getMonth() + 1).toString() + '月' +\r\n startDateZone.getDate().toString() + '日 ' +\r\n startDateZone.getHours().toString().padStart(2, '0') + ':' +\r\n startDateZone.getMinutes().toString().padStart(2, '0')\r\n ;\r\n } else if (todayStartTickZone <= startTickZone\r\n && startTickZone < todayStopTickZone\r\n && startTickZone < todayHalfTickZone) {\r\n return '上午 ' +\r\n startDateZone.getHours().toString().padStart(2, '0') + ':' +\r\n startDateZone.getMinutes().toString().padStart(2, '0')\r\n ;\r\n } else if (todayStartTickZone <= startTickZone\r\n && startTickZone < todayStopTickZone\r\n && todayHalfTickZone <= startTickZone) {\r\n let text = '下午 ' +\r\n (startDateZone.getHours() - 12).toString().padStart(2, '0') + ':' +\r\n startDateZone.getMinutes().toString().padStart(2, '0')\r\n ;\r\n text = text.replace('下午 00:', '下午 12:');\r\n return text;\r\n } else {\r\n console.log('error time');\r\n }\r\n }\r\n /** 上午 09:00、下午 01:00、O月O日、OOO年O月O日 */\r\n static convertTimeTickToPastTimeText1(targetTickZone: number): string {\r\n return this.convertTimeTickPastText1(targetTickZone, new Date().getTime());\r\n }\r\n /** 2018/01/01 00:00:00 */\r\n static convertTimeTickToTimeText1(ticks: number): string {\r\n const time = new Date(ticks);\r\n const timeString = time.getFullYear()\r\n + '/' + this.padNumber(time.getMonth() + 1)\r\n + '/' + this.padNumber(time.getDate())\r\n + ' ' + this.padNumber(time.getHours())\r\n + ':' + this.padNumber(time.getMinutes())\r\n + ':' + this.padNumber(time.getSeconds());\r\n\r\n return timeString;\r\n }\r\n /** 2018/01/01 00:00 */\r\n static convertTimeTickToTimeText2(ticks: number): string {\r\n const time = new Date(ticks);\r\n const timeString = time.getFullYear()\r\n + '/' + this.padNumber(time.getMonth() + 1)\r\n + '/' + this.padNumber(time.getDate())\r\n + ' ' + this.padNumber(time.getHours())\r\n + ':' + this.padNumber(time.getMinutes());\r\n\r\n return timeString;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-twitter-id-setting-popup',\r\n templateUrl: './twitter-id-setting-popup.component.html',\r\n styleUrls: ['./twitter-id-setting-popup.component.scss']\r\n})\r\nexport class TwitterIdSettingPopupComponent implements OnInit {\r\n\r\n confirm$: Subject = new Subject();\r\n text: string = '';\r\n\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n close(): void {\r\n this.matDialogRef.close();\r\n }\r\n confirm(): void {\r\n this.confirm$.next(this.text);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
Twitter 設定
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TwitterIdSettingPopupComponent } from './twitter-id-setting-popup.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [TwitterIdSettingPopupComponent],\r\n imports: [\r\n CommonModule,\r\n MatDialogModule,\r\n FormsModule,\r\n ],\r\n exports: [TwitterIdSettingPopupComponent]\r\n})\r\nexport class TwitterIdSettingPopupModule { }\r\n","import { Params } from '@angular/router';\r\n\r\nexport class UrlQueryParser {\r\n static parse(url: string): Params {\r\n if (!url) { return {}; }\r\n try {\r\n console.log(url);\r\n\r\n const paramStrings = url.split('&');\r\n if (paramStrings.length === 0) {\r\n return {};\r\n }\r\n\r\n const result: Params = {};\r\n\r\n paramStrings.forEach(q => {\r\n const qs = q.split('=');\r\n let key = qs[0];\r\n const value = qs[1];\r\n if (key.indexOf('?') > -1) {\r\n key = key.substring(key.indexOf('?') + 1);\r\n }\r\n result[key] = value;\r\n });\r\n\r\n return result;\r\n } catch (error) {\r\n console.log(`url parse error`);\r\n\r\n return {};\r\n }\r\n }\r\n static getCurrentUrlQuertParams(): Params {\r\n return UrlQueryParser.parse(location.search);\r\n }\r\n static ParamsToUrlString(p: Params): string {\r\n return Object\r\n .keys(p)\r\n .map(key => {\r\n return `${key}=${p[key]}`;\r\n })\r\n .join('');\r\n }\r\n}\r\n","import { Directive, Input, HostListener, Output, EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'input'\r\n})\r\nexport class ValidateOnBlurDirective {\r\n @Output() validateOnBlur: EventEmitter = new EventEmitter();\r\n constructor() { }\r\n\r\n\r\n @HostListener('focusout', ['$event']) onFocusout(ev: any) {\r\n this.validateOnBlur.emit(ev);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ValidateOnBlurDirective } from './validate-on-blur.directive';\r\n\r\n@NgModule({\r\n declarations: [ValidateOnBlurDirective],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [ValidateOnBlurDirective]\r\n})\r\nexport class ValidateOnBlurModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-website-setting-popup',\r\n templateUrl: './website-setting-popup.component.html',\r\n styleUrls: ['./website-setting-popup.component.scss']\r\n})\r\nexport class WebsiteSettingPopupComponent implements OnInit {\r\n confirm$: Subject = new Subject();\r\n\r\n name: string = '';\r\n url: string = '';\r\n\r\n disableSubmitButton: boolean = true;\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n close(): void {\r\n this.matDialogRef.close();\r\n }\r\n confirm(): void {\r\n this.confirm$.next();\r\n }\r\n\r\n checkInput(): void {\r\n this.disableSubmitButton = true;\r\n\r\n if (\r\n (this.name && this.url)\r\n || (!this.name && !this.url)\r\n ) {\r\n this.disableSubmitButton = false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
個人頁設定
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WebsiteSettingPopupComponent } from './website-setting-popup.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [WebsiteSettingPopupComponent],\r\n imports: [\r\n CommonModule,\r\n MatDialogModule,\r\n FormsModule,\r\n ],\r\n exports: [WebsiteSettingPopupComponent]\r\n})\r\nexport class WebsiteSettingPopupModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-wechat-id-setting-popup',\r\n templateUrl: './wechat-id-setting-popup.component.html',\r\n styleUrls: ['./wechat-id-setting-popup.component.scss']\r\n})\r\nexport class WechatIdSettingPopupComponent implements OnInit {\r\n\r\n confirm$: Subject = new Subject();\r\n text: string = '';\r\n\r\n\r\n constructor(\r\n private matDialogRef: MatDialogRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n close(): void {\r\n this.matDialogRef.close();\r\n }\r\n confirm(): void {\r\n this.confirm$.next(this.text);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
WeChat 設定
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
確認
\r\n
取消
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WechatIdSettingPopupComponent } from './wechat-id-setting-popup.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [WechatIdSettingPopupComponent],\r\n imports: [\r\n CommonModule,\r\n MatDialogModule,\r\n FormsModule,\r\n ],\r\n exports: [WechatIdSettingPopupComponent]\r\n})\r\nexport class WechatIdSettingPopupModule { }\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { IndictmentCourtId } from \"projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/indictment-court-id.enum\";\r\nimport { JudgmentCourtId } from \"projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-court-id.enum\";\r\nimport { JudgmentType } from \"projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-condition/judgment-type.enum\";\r\nimport { JudgmentSearchResultType } from \"projects/desktop/src/app/root/root-main/child-content-judgment-search/judgment-result/judgment-search-result-type.enum\";\r\nimport { JudgmentHistory } from \"projects/desktop/src/app/root/root-note-work-judgment/judgment-history\";\r\nimport { Court } from \"projects/lwlib/src/case-type/court\";\r\nimport { CourtBlockId } from \"projects/lwlib/src/case-type/court-block-id.enum\";\r\nimport { CourtId } from \"projects/lwlib/src/case-type/court-id.enum\";\r\nimport { CourtType } from \"projects/lwlib/src/case-type/court-type\";\r\nimport { Category } from \"projects/lwlib/src/category/category\";\r\nimport { Category2 } from \"projects/lwlib/src/category/category2\";\r\nimport { Subcategory } from \"projects/lwlib/src/category/subcategory\";\r\nimport { Subcategory2 } from \"projects/lwlib/src/category/subcategory2\";\r\nimport { Guid } from \"projects/lwlib/src/guid\";\r\nimport { JudgmentCase } from \"projects/lwlib/src/judgment/judgment-case\";\r\nimport { JudicialInterpretCase } from \"projects/lwlib/src/judicial-interpret/judicial-interpret-case\";\r\nimport { JudicialInterpretCourtBlock, JudicialInterpretCourtBlockId, JudicialInterpretCourtBlocks, JudicialInterpretCourtCatalogId, JudicialInterpretCourtGroup, JudicialInterpretCourtGroupId, JudicialInterpretCourtGroups, JudicialInterpretCourtId, JudicialInterpretSearchCourtCatalog } from \"projects/lwlib/src/judicial-interpret/judicial-interpret-court\";\r\nimport { SearcherKeyword } from \"projects/lwlib/src/keyword-searcher/searcher-keyword\";\r\nimport { SearcherKeywordKind } from \"projects/lwlib/src/keyword-searcher/searcher-keyword-kind\";\r\nimport { LawArticle } from \"projects/lwlib/src/law-rule/law-article\";\r\nimport { LawSystem } from \"projects/lwlib/src/law-rule/law-system\";\r\nimport { LawSystemSource } from \"projects/lwlib/src/law-rule/law-system-source\";\r\nimport { LwExt } from \"projects/lwlib/src/lib/lw-ext\";\r\nimport { NetService } from \"projects/lwlib/src/net.service\";\r\nimport { Summary2 } from \"projects/lwlib/src/summary2/summary2\";\r\nimport { Summary2Block } from \"projects/lwlib/src/summary2/summary2-block\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport class TabButton {\r\n name: string;\r\n\r\n constructor(\r\n name: string\r\n ) {\r\n this.name = name;\r\n }\r\n}\r\nexport class ListItem {\r\n name?: string;\r\n icon?: string;\r\n className?: string;\r\n disable?: boolean = false;\r\n iconStyle?: CSSStyleDeclaration | {} = {};\r\n textStyle?: CSSStyleDeclaration | {} = {};\r\n itemStyle?: CSSStyleDeclaration | {} = {};\r\n}\r\nexport class SearchListTypeItem extends ListItem {\r\n kind?: SearcherKeywordKind;\r\n kindName?: string;\r\n}\r\nexport enum FullPageNoteInfoTabId {\r\n Basic,\r\n Issue,\r\n CaseHistory,\r\n RelateLawArticle,\r\n Share,\r\n LawRuleInfo,\r\n LawArticleLearnData,\r\n Files,\r\n}\r\n/** 0:地方 1:高等 2:最高 3:智慧 */\r\nexport const JudgmentCourtIdLevelDict: { [key in keyof typeof JudgmentCourtId]: number } = {\r\n NONE: -1,\r\n V_D_Taipei: 0,\r\n V_D_Shihlin: 0,\r\n V_D_New_Taipei: 0,\r\n V_D_Keelung: 0,\r\n V_D_Yilan: 0,\r\n V_D_Taoyuan: 0,\r\n V_D_Hsinchu: 0,\r\n V_D_Miaoli: 0,\r\n V_D_Taichung: 0,\r\n V_D_Changhua: 0,\r\n V_D_Nantou: 0,\r\n V_D_Yunlin: 0,\r\n V_D_Chiayi: 0,\r\n V_D_Tainan: 0,\r\n V_D_Kaohsiung: 0,\r\n V_D_Qiaotou: 0,\r\n V_D_Hualien: 0,\r\n V_D_Taitung: 0,\r\n V_D_Pingtung: 0,\r\n V_D_Penghu: 0,\r\n V_D_Kinmen: 0,\r\n V_D_Lienchiang: 0,\r\n V_D_Kaohsiung_Juvenile: 0,\r\n V_H: 1,\r\n V_H_Taichung: 1,\r\n V_H_Tainan: 1,\r\n V_H_Hualien: 1,\r\n V_H_Kaohsiung: 1,\r\n V_H_Kinmen: 1,\r\n V_S: 2,\r\n V_I: 3,\r\n M_D_Taipei: 0,\r\n M_D_Shihlin: 0,\r\n M_D_New_Taipei: 0,\r\n M_D_Keelung: 0,\r\n M_D_Yilan: 0,\r\n M_D_Taoyuan: 0,\r\n M_D_Hsinchu: 0,\r\n M_D_Miaoli: 0,\r\n M_D_Taichung: 0,\r\n M_D_Changhua: 0,\r\n M_D_Nantou: 0,\r\n M_D_Yunlin: 0,\r\n M_D_Chiayi: 0,\r\n M_D_Tainan: 0,\r\n M_D_Kaohsiung: 0,\r\n M_D_Qiaotou: 0,\r\n M_D_Hualien: 0,\r\n M_D_Taitung: 0,\r\n M_D_Pingtung: 0,\r\n M_D_Penghu: 0,\r\n M_D_Kinmen: 0,\r\n M_D_Lienchiang: 0,\r\n M_H: 1,\r\n M_H_Taichung: 1,\r\n M_H_Tainan: 1,\r\n M_H_Hualien: 1,\r\n M_H_Kaohsiung: 1,\r\n M_H_Kinmen: 1,\r\n M_S: 2,\r\n M_I: 3,\r\n A_D_Taipei: 0,\r\n A_D_Shihlin: 0,\r\n A_D_New_Taipei: 0,\r\n A_D_Keelung: 0,\r\n A_D_Yilan: 0,\r\n A_D_Taoyuan: 0,\r\n A_D_Hsinchu: 0,\r\n A_D_Miaoli: 0,\r\n A_D_Taichung: 0,\r\n A_D_Changhua: 0,\r\n A_D_Nantou: 0,\r\n A_D_Yunlin: 0,\r\n A_D_Chiayi: 0,\r\n A_D_Tainan: 0,\r\n A_D_Kaohsiung: 0,\r\n A_D_Qiaotou: 0,\r\n A_D_Hualien: 0,\r\n A_D_Taitung: 0,\r\n A_D_Pingtung: 0,\r\n A_D_Penghu: 0,\r\n A_D_Kinmen: 0,\r\n A_D_Lienchiang: 0,\r\n A_H_Taipei: 1,\r\n A_H_Taichung: 1,\r\n A_H_Kaohsiung: 1,\r\n A_S: 2,\r\n A_I: 3,\r\n O_P: 0,\r\n O_C: 0,\r\n O_J: 0,\r\n};\r\n/** 裁判檢索結果法院清單用,裁判種類名稱 */\r\nexport const JudgmentSearchResultCourtTypeIdName: { [key in keyof typeof JudgmentType]: string } = {\r\n Civil: '民事類',\r\n Criminal: '刑事類',\r\n Administrative: '行政類',\r\n Intellectual: '智財類',\r\n Other: '其他類',\r\n Indictment: '起訴書',\r\n}\r\n// 排序歷審裁判,依照日期降序\r\nexport function sortHistoryByDate(a: JudgmentHistory, b: JudgmentHistory): number {\r\n const dateA = (a.judg_date_year + 1911) + '/' + a.judg_date_month.toString().padStart(2, '0') + '/' + a.judg_date_day.toString().padStart(2, '0');\r\n const dateB = (b.judg_date_year + 1911) + '/' + b.judg_date_month.toString().padStart(2, '0') + '/' + b.judg_date_day.toString().padStart(2, '0');\r\n return dateB.localeCompare(dateA);\r\n}\r\n// 案件法條標題數字[]->字串\r\nexport function convertLawSystemSourceToNumber(lawSystem: LawSystemSource): string {\r\n let t = lawSystem.law_system_number.toString();\r\n if (lawSystem.law_system_subnumber) {\r\n t += '-' + lawSystem.law_system_subnumber;\r\n }\r\n return t;\r\n}\r\n// 顯示用容器\r\nexport class ListViewItem {\r\n id: string = Guid.newGuid();\r\n positionTop: number = 0;\r\n part: ListViewPart;\r\n template: TemplateRef;\r\n content: any;\r\n\r\n static create(content: any, template: TemplateRef) {\r\n const item = new ListViewItem();\r\n item.content = content;\r\n item.template = template;\r\n return item;\r\n }\r\n}\r\n// 顯示用容器組\r\nexport class ListViewPart {\r\n index: number;\r\n list: ListViewItem[] = [];\r\n positionTop: number = 0;\r\n height: number = 9999;\r\n firstTimeRendered: boolean = false;\r\n\r\n constructor(index?: number) {\r\n this.index = index;\r\n }\r\n}\r\n// 法規筆記搜尋體系用\r\nexport class SearcherResultItemLawRuleSystem {\r\n // 檢索結果用id\r\n id: string = Guid.newGuid();\r\n // 原體系資料\r\n source: LawSystem;\r\n\r\n // 判斷這結果是體系或法條\r\n isArticle: boolean = false;\r\n\r\n // 法條條號用,體系標題用\r\n text: string = '';\r\n // 法條標題用\r\n text2: string = '';\r\n\r\n // 法條用,打卡狀態\r\n checkinStatus: number = 0;\r\n checkinStatusClass: string = '';\r\n\r\n\r\n // 是否在搜尋結果中\r\n isSearchHit: boolean = false;\r\n // 法條用,是否被選擇中\r\n isSelected: boolean = false;\r\n // 是否被隱藏中\r\n isHide: boolean = false;\r\n\r\n\r\n // 體系用,第幾層體系,0是最上層,無推移\r\n deepIndex: number = 0;\r\n // 體系用,是否折疊中,但只是用在icon顯示切換而已\r\n isCollapsed: boolean = false;\r\n // 體系用,是否有子結果\r\n hasChildren: boolean = false;\r\n // 子體系、子法條\r\n children: SearcherResultItemLawRuleSystem[] = [];\r\n // 父體系\r\n parent: SearcherResultItemLawRuleSystem;\r\n\r\n}\r\nexport function getCategoryText(category: Category | Category2): string {\r\n if (category instanceof Category) {\r\n if (category == Category.unCategory) {\r\n return '';\r\n } else {\r\n return (category as Category).text;\r\n }\r\n }\r\n if (category instanceof Category2) {\r\n if (category == Category2.unCategory) {\r\n return '';\r\n } else {\r\n return (category as Category2).name;\r\n }\r\n }\r\n\r\n return '';\r\n}\r\nexport function getSubcategoryText(subcategory: Subcategory | Subcategory2): string {\r\n if (subcategory instanceof Subcategory) {\r\n if (subcategory == Subcategory.unSubcategory) {\r\n return '';\r\n } else {\r\n return (subcategory as Subcategory).text;\r\n }\r\n }\r\n if (subcategory instanceof Subcategory2) {\r\n if (subcategory == Subcategory2.unSubcategory) {\r\n return '';\r\n } else {\r\n return (subcategory as Subcategory2).name;\r\n }\r\n }\r\n\r\n return '';\r\n}\r\nexport function getNoteCategory(note: JudgmentCase | JudicialInterpretCase,\r\n categoryList: Category[] | Category2[]): Category {\r\n if (categoryList.length == 0) {\r\n return Category.unCategory;\r\n }\r\n\r\n let noteCategory: any = null;\r\n const baseCategory: any = categoryList[0];\r\n\r\n if (baseCategory instanceof Category\r\n || (baseCategory as any).text != null) {\r\n noteCategory = (categoryList as Category[])\r\n .find(v => v.text == note.category_text);\r\n }\r\n else if (baseCategory instanceof Category2\r\n || (baseCategory as any).name != null) {\r\n noteCategory = (categoryList as Category2[])\r\n .find(v => v.name == note.category_text);\r\n }\r\n if (noteCategory == null) {\r\n noteCategory = Category.unCategory;\r\n }\r\n return noteCategory;\r\n}\r\nexport function getNoteSubcategory(note: JudgmentCase | JudicialInterpretCase,\r\n subcategoryList: Subcategory[] | Subcategory2[]): Subcategory {\r\n if (subcategoryList.length == 0) {\r\n return Subcategory.unSubcategory;\r\n }\r\n\r\n let noteSubcategory: any = null;\r\n if (note.category_text != null && note.subcategory_text != null) {\r\n const baseSubcategory: any = subcategoryList[0];\r\n if (baseSubcategory instanceof Subcategory\r\n || baseSubcategory.text != null) {\r\n noteSubcategory = (subcategoryList as Subcategory[])\r\n .find(v => v.category_text == note.category_text\r\n && v.text == note.subcategory_text);\r\n }\r\n else if (baseSubcategory instanceof Subcategory2\r\n || baseSubcategory.name != null) {\r\n noteSubcategory = (subcategoryList as Subcategory2[])\r\n .find(v => v.category == note.category_text\r\n && v.name == note.subcategory_text);\r\n }\r\n }\r\n if (noteSubcategory == null) {\r\n noteSubcategory = Subcategory.unSubcategory;\r\n }\r\n return noteSubcategory;\r\n}\r\nexport function getNoteCategoryText(note: JudgmentCase | JudicialInterpretCase, categoryList: Category[] | Category2[]): string {\r\n const noteCategory: Category = getNoteCategory(note, categoryList);\r\n return getCategoryText(noteCategory);\r\n}\r\nexport function getNoteSubcategoryText(note: JudgmentCase | JudicialInterpretCase, subcategoryList: Subcategory[] | Subcategory2[]): string {\r\n const noteSubcategory: Subcategory = getNoteSubcategory(note, subcategoryList);\r\n return getSubcategoryText(noteSubcategory);\r\n}\r\nexport class SearchResultCourt {\r\n /** 裁判、起訴書用,查法院資料,判解不適用,判解有自己的特殊階層 */\r\n caseNameCourt: Court;\r\n /** CourtId (不是JuedgmentCourtId) */\r\n get courtId(): CourtId { return this.caseNameCourt.court_id; }\r\n // CourtId -> string\r\n get courtIdString(): string { return this.caseNameCourt.courtIdString; }\r\n // CourtBlockId\r\n get courtBlockId(): CourtBlockId { return this.caseNameCourt.court_block_id; }\r\n // CourtBlockId -> string\r\n get courtBlockIdString(): string { return this.caseNameCourt.courtBlockIdString; }\r\n\r\n /** 裁判類用參數 */\r\n judgmentCourtId: JudgmentCourtId;\r\n indictmentCourtId: IndictmentCourtId;\r\n resultTypeId: JudgmentSearchResultType;\r\n isIndictment: boolean = false;\r\n isJudgment: boolean = false;\r\n\r\n /** 判解類用參數 */\r\n judicialInterpretCourtGroupId: JudicialInterpretCourtGroupId;\r\n judicialInterpretCourtBlockId: JudicialInterpretCourtBlockId;\r\n /** 行政函釋用的key */\r\n tag1: string;\r\n /** 行政函釋用的機關(agent) */\r\n tag2: string;\r\n\r\n /** 通用參數 */\r\n name: string;\r\n isCounting: boolean;\r\n isLoadingList: boolean;\r\n count: number;\r\n}\r\nexport class SearchResultGroup {\r\n name: string;\r\n resultItems: SearchResultCourt[];\r\n}\r\nexport class SearchResultType {\r\n courtType: CourtType;\r\n groups: SearchResultGroup[];\r\n count: number = 0;\r\n isCounting: boolean = true;\r\n isEmpty: boolean = false;\r\n}\r\n\r\nexport const escapeKeyword = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\r\nexport function escapeRegExp(string: string): string {\r\n return string.replace(/([.+?^=!:${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\r\n}\r\nexport function getKeywordRegexp(rawKeyword: string): RegExp {\r\n const keyword = rawKeyword.toLowerCase().replace(escapeKeyword, '\\\\$&');\r\n const keywordRegexp = new RegExp(keyword, 'i');\r\n return keywordRegexp;\r\n}\r\nexport class KeywordRow {\r\n index: number;\r\n enable: boolean;\r\n text: string;\r\n logic: 'and' | 'or' | 'not';\r\n}\r\nexport function convertKeywordToJudgmentCaseName(keywordString: string): string {\r\n const cnMatchString = '^([' + LwExt.ChineseNumber.allChineseNumber + ']+)'\r\n + ',*([^\\d' + LwExt.ChineseNumber.allChineseNumber + ']+?),*'\r\n + '([' + LwExt.ChineseNumber.allChineseNumber + ']+)$';\r\n const cnRegexp = new RegExp(cnMatchString);\r\n\r\n const m = keywordString.match(/^(\\d+),*([^\\d]+?),*(\\d+)$/);\r\n if (m != null) {\r\n const convertedKeyword = `${m[1]}年度${m[2]}字第${m[3]}號`;\r\n return convertedKeyword;\r\n }\r\n\r\n const m2 = cnRegexp.exec(keywordString);\r\n if (m2 != null) {\r\n const convertedKeyword = `${m2[1]}年度${m2[2]}字第${m2[3]}號`;\r\n return convertedKeyword;\r\n }\r\n\r\n return keywordString;\r\n}\r\n\r\nexport class JudicialInterpretSearchCourtGroup {\r\n data: JudicialInterpretCourtGroup;\r\n selected: boolean = false;\r\n constructor(data: JudicialInterpretCourtGroup) {\r\n this.data = data;\r\n }\r\n}\r\nexport class JudicialInterpretSearchCourtBlock {\r\n data: JudicialInterpretCourtBlock;\r\n enableSelectAll: boolean = false;\r\n selected: boolean = false;\r\n courts: JudicialInterpretSearchCourtGroup[][];\r\n}\r\nexport class JudicialInterpretSearchCourtCondition {\r\n courtGroups: { [key in keyof typeof JudicialInterpretCourtGroupId]: JudicialInterpretSearchCourtGroup } = {\r\n ctypeABC: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.ctypeABC),\r\n ctypeD: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.ctypeD),\r\n ttypeX: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.ttypeX),\r\n jtype21gc1m134: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtype21gc1m134),\r\n jtype22gc2m1342: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtype22gc2m1342),\r\n jtype23gc3m134: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtype23gc3m134),\r\n jtypeA: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeA),\r\n jtypeB: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeB),\r\n jtypeE: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeE),\r\n jtype1A: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtype1A),\r\n jtype1B: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtype1B),\r\n jtype1E: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtype1E),\r\n jtypeI: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeI),\r\n jtypeG: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeG),\r\n jtypeC01: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeC01),\r\n jtypeO: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeO),\r\n jtypeJ: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeJ),\r\n jtypeH: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeH),\r\n jtypeD01: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeD01),\r\n jtypeP: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeP),\r\n jtypeR: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeR),\r\n jtypeK: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeK),\r\n jtypeF01: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeF01),\r\n jtypeQ: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeQ),\r\n jtypeU: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeU),\r\n jtypeV: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeV),\r\n jtypeS: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeS),\r\n jtypeT: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeT),\r\n dtypeA01: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.dtypeA01),\r\n dtypeB01: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.dtypeB01),\r\n dtypeC01: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.dtypeC01),\r\n jtypeL: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.jtypeL),\r\n qtypeA: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.qtypeA),\r\n qtypeG: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.qtypeG),\r\n qtypeB: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.qtypeB),\r\n qtypeC: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.qtypeC),\r\n qtypeD: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.qtypeD),\r\n etypeX01: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.etypeX01),\r\n xftype38: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.xftype38),\r\n xftype39: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.xftype39),\r\n xftype40: new JudicialInterpretSearchCourtGroup(JudicialInterpretCourtGroups.xftype40),\r\n };\r\n courtBlocks: { [key in keyof typeof JudicialInterpretCourtBlockId]: JudicialInterpretSearchCourtBlock } = {\r\n Court_Court: {\r\n data: JudicialInterpretCourtBlocks.Court_Court,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.ctypeABC]\r\n ]\r\n },\r\n Court_BigJudge: {\r\n data: JudicialInterpretCourtBlocks.Court_BigJudge,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.ctypeD]\r\n ]\r\n },\r\n Court_Reject: {\r\n data: JudicialInterpretCourtBlocks.Court_Reject,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.ttypeX]\r\n ]\r\n },\r\n Court_XF: {\r\n data: JudicialInterpretCourtBlocks.Court_XF,\r\n enableSelectAll: true, selected: false,\r\n courts: [\r\n [this.courtGroups.xftype38],\r\n [this.courtGroups.xftype39],\r\n [this.courtGroups.xftype40],\r\n ]\r\n },\r\n Grand_Normal: {\r\n data: JudicialInterpretCourtBlocks.Grand_Normal,\r\n enableSelectAll: true, selected: false,\r\n courts: [\r\n [this.courtGroups.jtype21gc1m134],\r\n [this.courtGroups.jtype22gc2m1342],\r\n [this.courtGroups.jtype23gc3m134],\r\n ]\r\n },\r\n Precedent_Normal: {\r\n data: JudicialInterpretCourtBlocks.Precedent_Normal,\r\n enableSelectAll: true, selected: false,\r\n courts: [\r\n [this.courtGroups.jtypeA, this.courtGroups.jtypeB, this.courtGroups.jtypeE]\r\n ]\r\n },\r\n Precedent_Stop: {\r\n data: JudicialInterpretCourtBlocks.Precedent_Stop,\r\n enableSelectAll: true, selected: false,\r\n courts: [\r\n [this.courtGroups.jtype1A],\r\n [this.courtGroups.jtype1B],\r\n [this.courtGroups.jtype1E],\r\n ]\r\n },\r\n Judgment_V: {\r\n data: JudicialInterpretCourtBlocks.Judgment_V,\r\n enableSelectAll: true, selected: false,\r\n courts: [\r\n [\r\n this.courtGroups.jtypeI,\r\n this.courtGroups.jtypeG,\r\n this.courtGroups.jtypeC01,\r\n ],\r\n [\r\n this.courtGroups.jtypeO\r\n ],\r\n ]\r\n },\r\n Judgment_M: {\r\n data: JudicialInterpretCourtBlocks.Judgment_M,\r\n enableSelectAll: true, selected: false,\r\n courts: [\r\n [\r\n this.courtGroups.jtypeJ,\r\n this.courtGroups.jtypeH,\r\n this.courtGroups.jtypeD01,\r\n ],\r\n [this.courtGroups.jtypeP]\r\n ]\r\n },\r\n Judgment_A: {\r\n data: JudicialInterpretCourtBlocks.Judgment_A,\r\n enableSelectAll: true, selected: false,\r\n courts: [\r\n [\r\n this.courtGroups.jtypeR,\r\n this.courtGroups.jtypeK,\r\n this.courtGroups.jtypeF01,\r\n ],\r\n [this.courtGroups.jtypeQ]\r\n ]\r\n },\r\n Judgment_SupremeReference: {\r\n data: JudicialInterpretCourtBlocks.Judgment_SupremeReference,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.jtypeU, this.courtGroups.jtypeV]\r\n ]\r\n },\r\n Judgment_HighReference: {\r\n data: JudicialInterpretCourtBlocks.Judgment_HighReference,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.jtypeS, this.courtGroups.jtypeT]\r\n ]\r\n },\r\n Resolution_V: {\r\n data: JudicialInterpretCourtBlocks.Resolution_V,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.dtypeA01]\r\n ]\r\n },\r\n Resolution_M: {\r\n data: JudicialInterpretCourtBlocks.Resolution_M,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.dtypeB01]\r\n ]\r\n },\r\n Resolution_A: {\r\n data: JudicialInterpretCourtBlocks.Resolution_A,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.dtypeC01]\r\n ]\r\n },\r\n Discipline_Discipline: {\r\n data: JudicialInterpretCourtBlocks.Discipline_Discipline,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.jtypeL]\r\n ]\r\n },\r\n Seminar_V: {\r\n data: JudicialInterpretCourtBlocks.Seminar_V,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.qtypeA],\r\n [this.courtGroups.qtypeG]\r\n ]\r\n },\r\n Seminar_M: {\r\n data: JudicialInterpretCourtBlocks.Seminar_M,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.qtypeB]\r\n ]\r\n },\r\n Seminar_A: {\r\n data: JudicialInterpretCourtBlocks.Seminar_A,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.qtypeC]\r\n ]\r\n },\r\n Seminar_Discipline: {\r\n data: JudicialInterpretCourtBlocks.Seminar_Discipline,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.qtypeD]\r\n ]\r\n },\r\n Execute_Execute: {\r\n data: JudicialInterpretCourtBlocks.Execute_Execute,\r\n enableSelectAll: false, selected: false,\r\n courts: [\r\n [this.courtGroups.etypeX01]\r\n ]\r\n },\r\n };\r\n courtCatalogCourts: { [key in keyof typeof JudicialInterpretCourtCatalogId]: JudicialInterpretSearchCourtBlock[] } = {\r\n Court: [\r\n this.courtBlocks.Court_XF,\r\n this.courtBlocks.Court_Court,\r\n this.courtBlocks.Court_BigJudge,\r\n this.courtBlocks.Court_Reject,\r\n ],\r\n Grand: [\r\n this.courtBlocks.Grand_Normal\r\n ],\r\n Precedent: [\r\n this.courtBlocks.Precedent_Normal,\r\n this.courtBlocks.Precedent_Stop,\r\n ],\r\n Judgment: [\r\n this.courtBlocks.Judgment_V,\r\n this.courtBlocks.Judgment_M,\r\n this.courtBlocks.Judgment_A,\r\n this.courtBlocks.Judgment_SupremeReference,\r\n this.courtBlocks.Judgment_HighReference,\r\n ],\r\n Resolution: [\r\n this.courtBlocks.Resolution_V,\r\n this.courtBlocks.Resolution_M,\r\n this.courtBlocks.Resolution_A,\r\n ],\r\n Discipline: [\r\n this.courtBlocks.Discipline_Discipline,\r\n ],\r\n Seminar: [\r\n this.courtBlocks.Seminar_V,\r\n this.courtBlocks.Seminar_M,\r\n this.courtBlocks.Seminar_A,\r\n this.courtBlocks.Seminar_Discipline,\r\n ],\r\n Execute: [\r\n this.courtBlocks.Execute_Execute\r\n ],\r\n };\r\n}\r\ntype ComposeType = 'and' | 'or' | 'not';\r\nexport class JudicialInterpretSearchCondition {\r\n // courtCatalogId: JudicialInterpretCourtCatalogId;\r\n // courtGroupIds: JudicialInterpretCourtGroupId[];\r\n // inputKeyword1: string;\r\n // inputKeyword2: string;\r\n // inputKeyword3: string;\r\n // inputKeyword4: string;\r\n // inputKeyword5: string;\r\n // inputKeyword6: string;\r\n // inputKeywordLogic1: ComposeType;\r\n // inputKeywordLogic2: ComposeType;\r\n // inputKeywordLogic3: ComposeType;\r\n // inputKeywordLogic4: ComposeType;\r\n // inputKeywordLogic5: ComposeType;\r\n // inputKeywordLogic6: ComposeType;\r\n\r\n caseReason: string;\r\n caseWordNumber: string;\r\n caseWordWord: string;\r\n caseWordYear: string;\r\n caseWordAgency: string;\r\n caseWordMeetMonth: string;\r\n caseWordMeetNumber: string;\r\n caseWordMeetYear: string;\r\n catalogId: JudicialInterpretCourtCatalogId;\r\n catalogName: string;\r\n\r\n courtBlocks: {\r\n courtBlockId: JudicialInterpretCourtBlockId,\r\n courtGroupIds: JudicialInterpretCourtGroupId[]\r\n }[];\r\n courtGroupId: JudicialInterpretCourtGroupId;\r\n compose: [ComposeType, ComposeType, ComposeType, ComposeType, ComposeType, ComposeType];\r\n keyword: [string, string, string, string, string, string];\r\n\r\n caseDate: [string, string, string, string, string, string];\r\n\r\n /** 大法庭用屬性,對應jtype21gc1m(x) */\r\n property1: boolean;\r\n /** 大法庭用屬性,對應jtype21gc1m(x) */\r\n property2: boolean;\r\n /** 大法庭用屬性,對應jtype21gc1m(x) */\r\n property3: boolean;\r\n /** 大法庭用屬性,對應jtype21gc1m(x) */\r\n property4: boolean;\r\n tag: { [key: string]: string[] };\r\n\r\n pageNumber: number = 1;\r\n}\r\nexport class JudicialInterpretExecuteAgent {\r\n name: string;\r\n subagentList: JudicialInterpretExecuteSubagent[][];\r\n subagentFlatList: JudicialInterpretExecuteSubagent[];\r\n constructor(\r\n name: string,\r\n subagentList: JudicialInterpretExecuteSubagent[][]\r\n ) {\r\n this.name = name;\r\n this.subagentList = subagentList;\r\n this.subagentFlatList = this.subagentList.reduce((p, v) => [...p, ...v], []);\r\n }\r\n\r\n isSelectedAllSubagent(): boolean {\r\n return this.subagentFlatList.every(v => v.selected);\r\n }\r\n getSelectedSubagentCount(): number {\r\n return this.subagentFlatList.filter(v => v.selected).length;\r\n }\r\n}\r\nexport class JudicialInterpretExecuteSubagent {\r\n name: string = '';\r\n selected: boolean = true;\r\n width?: any;\r\n}\r\nexport class JudicialInterpretSearchConditionExecuteAgent {\r\n agents = {\r\n '總統府': new JudicialInterpretExecuteAgent('總統府', [\r\n [\r\n { name: '總統', selected: true },\r\n { name: '秘書長', selected: true },\r\n { name: '人事處', selected: true },\r\n { name: '主計處', selected: true },\r\n { name: '侍衛室', selected: true },\r\n { name: '政風處', selected: true },\r\n { name: '第一局', selected: true },\r\n { name: '第二局', selected: true },\r\n { name: '第三局', selected: true },\r\n { name: '機要室', selected: true },\r\n { name: '公共事務室', selected: true, width: 200 },\r\n { name: '法規委員會', selected: true, width: 200 },\r\n ],\r\n [\r\n { name: '國史館', selected: true },\r\n { name: '中央研究院', selected: true },\r\n ]\r\n ]),\r\n '行政院': new JudicialInterpretExecuteAgent('行政院', [\r\n [\r\n { name: '行政院', selected: true },\r\n ],\r\n [\r\n { name: '秘書處', selected: true },\r\n { name: '人事處', selected: true },\r\n { name: '政風處', selected: true },\r\n { name: '主計處', selected: true },\r\n { name: '資訊處', selected: true },\r\n { name: '公共關係處', selected: true },\r\n ],\r\n [\r\n { name: '法規會', selected: true, width: 150 },\r\n { name: '性別平等處', selected: true, width: 150 },\r\n { name: '新聞傳播處', selected: true, width: 150 },\r\n { name: '資通安全處', selected: true, width: 150 },\r\n { name: '綜合業務處', selected: true, width: 150 },\r\n { name: '消費者保護處', selected: true, width: 150 },\r\n { name: '內政衛福勞動處', selected: true, width: 150 },\r\n { name: '外交國防法務處', selected: true, width: 150 },\r\n { name: '交通環境資源處', selected: true, width: 150 },\r\n { name: '災害防救辦公室', selected: true, width: 150 },\r\n { name: '財政主計金融處', selected: true, width: 150 },\r\n { name: '國土安全辦公室', selected: true, width: 150 },\r\n { name: '教育科學文化處', selected: true, width: 150 },\r\n { name: '經濟能源農業處', selected: true, width: 150 },\r\n { name: '國安基金委員會', selected: true, width: 150 },\r\n ],\r\n [\r\n { name: '內政部', selected: true, width: 80 },\r\n { name: '文化部', selected: true, width: 80 },\r\n { name: '外交部', selected: true, width: 80 },\r\n { name: '交通部', selected: true, width: 80 },\r\n { name: '法務部', selected: true, width: 80 },\r\n { name: '科技部', selected: true, width: 80 },\r\n { name: '財政部', selected: true, width: 80 },\r\n { name: '國防部', selected: true, width: 80 },\r\n { name: '教育部', selected: true, width: 80 },\r\n { name: '勞動部', selected: true, width: 80 },\r\n { name: '經濟部', selected: true, width: 80 },\r\n { name: '中央銀行', selected: true, width: 80 },\r\n { name: '主計總處', selected: true, width: 160 },\r\n { name: '大陸委員會', selected: true, width: 160 },\r\n { name: '台灣省政府', selected: true, width: 160 },\r\n { name: '客家委員會', selected: true, width: 160 },\r\n { name: '海洋委員會', selected: true, width: 160 },\r\n { name: '僑務委員會', selected: true, width: 160 },\r\n { name: '衛生福利部', selected: true, width: 160 },\r\n { name: '農業委員會', selected: true, width: 160 },\r\n { name: '環境保護署', selected: true, width: 160 },\r\n { name: '人事行政總處', selected: true, width: 160 },\r\n { name: '原子能委員會', selected: true, width: 160 },\r\n { name: '中央選舉委員會', selected: true, width: 160 },\r\n { name: '公平交易委員會', selected: true, width: 160 },\r\n { name: '原住民族委員會', selected: true, width: 160 },\r\n { name: '國立故宮博物院', selected: true, width: 160 },\r\n { name: '國家發展委員會', selected: true, width: 160 },\r\n { name: '公共工程委員會', selected: true, width: 160 },\r\n { name: '金融監督管理委員會', selected: true, width: 240 },\r\n { name: '促進轉型正義委員會', selected: true, width: 240 },\r\n { name: '國家通訊傳播委員會', selected: true, width: 240 },\r\n { name: '國軍退除役官兵輔導委員會', selected: true, width: 240 },\r\n { name: '其他(早期單位)', selected: true, width: 240 },\r\n ]\r\n ]),\r\n '監察院': new JudicialInterpretExecuteAgent('監察院', [\r\n [\r\n { name: '監察院', selected: true, width: 80 },\r\n { name: '政風室', selected: true, width: 80 },\r\n { name: '人事室', selected: true, width: 80 },\r\n { name: '統計室', selected: true, width: 80 },\r\n { name: '會計室', selected: true, width: 80 },\r\n { name: '秘書處', selected: true, width: 80 },\r\n { name: '綜合業務處', selected: true, width: 160 },\r\n { name: '監察調查處', selected: true, width: 160 },\r\n { name: '監察業務處', selected: true, width: 160 },\r\n { name: '公職人員財產申報處', selected: true, width: 160 },\r\n ],\r\n [\r\n { name: '國家人權委員會', selected: true, width: 160 },\r\n { name: '訴願審議委員會', selected: true, width: 160 },\r\n ],\r\n [\r\n { name: '內政及族群委員會', selected: true, width: 160 },\r\n { name: '外交及國防委員會', selected: true, width: 160 },\r\n { name: '財政及經濟委員會', selected: true, width: 160 },\r\n { name: '教育及文化委員會', selected: true, width: 160 },\r\n { name: '交通及採購委員會', selected: true, width: 160 },\r\n { name: '司法及獄政委員會', selected: true, width: 160 },\r\n { name: '社會福利及衛生環境委員會', selected: true, width: 160 },\r\n ],\r\n [\r\n { name: '諮詢委員會', selected: true, width: 160 },\r\n { name: '廉政委員會', selected: true, width: 160 },\r\n { name: '法規研究委員會', selected: true, width: 160 },\r\n { name: '監察委員紀律委員會', selected: true, width: 160 },\r\n ],\r\n [\r\n { name: '審計部', selected: true, width: 80 },\r\n ]\r\n ]),\r\n '考試院': new JudicialInterpretExecuteAgent('考試院', [\r\n [\r\n { name: '考試院', selected: true, width: 100 },\r\n { name: '秘書處', selected: true, width: 100 },\r\n { name: '第一組', selected: true, width: 100 },\r\n { name: '第二組', selected: true, width: 100 },\r\n { name: '第三組', selected: true, width: 100 },\r\n { name: '編纂室', selected: true, width: 100 },\r\n { name: '資訊室', selected: true, width: 100 },\r\n { name: '機要室', selected: true, width: 100 },\r\n { name: '人事室', selected: true, width: 100 },\r\n { name: '會計室', selected: true, width: 100 },\r\n { name: '統計室', selected: true, width: 100 },\r\n { name: '政風室', selected: true, width: 100 },\r\n { name: '法規委員會', selected: true, width: 200 },\r\n { name: '訴願審議委員會', selected: true, width: 200 },\r\n { name: '研究發展委員會', selected: true, width: 200 },\r\n ],\r\n [\r\n { name: '考選部', selected: true, width: 100 },\r\n { name: '銓敘部', selected: true, width: 100 },\r\n { name: '公務人員保障暨培訓委員會', selected: true, width: 100 },\r\n { name: '公務人員退休撫卹基金監理委員會', selected: true, width: 100 },\r\n ]\r\n ]),\r\n '司法院': new JudicialInterpretExecuteAgent('司法院', [\r\n [\r\n { name: '司法院', selected: true, width: 80 },\r\n { name: '人事處', selected: true, width: 80 },\r\n { name: '民事廳', selected: true, width: 80 },\r\n { name: '刑事廳', selected: true, width: 80 },\r\n { name: '政風處', selected: true, width: 80 },\r\n { name: '秘書處', selected: true, width: 80 },\r\n { name: '參事室', selected: true, width: 80 },\r\n { name: '統計處', selected: true, width: 80 },\r\n { name: '會計處', selected: true, width: 80 },\r\n { name: '資訊處', selected: true, width: 80 },\r\n { name: '發言人室', selected: true, width: 160 },\r\n { name: '公共關係處', selected: true, width: 160 },\r\n { name: '司法行政廳', selected: true, width: 160 },\r\n { name: '大法官書記處', selected: true, width: 160 },\r\n { name: '少年及家事廳', selected: true, width: 160 },\r\n { name: '法官評鑑委員會', selected: true, width: 160 },\r\n { name: '行政訴訟及懲戒廳', selected: true, width: 160 },\r\n { name: '民間公證人任免委員會', selected: true, width: 160 },\r\n { name: '國家賠償事件處理委員會', selected: true, width: 240 },\r\n { name: '人權與兒少保護及性別友善委員會', selected: true, width: 200 },\r\n { name: '其他(早期單位)', selected: true, width: 200 },\r\n ],\r\n [\r\n { name: '臺北', selected: true, width: 100 },\r\n { name: '士林', selected: true, width: 100 },\r\n { name: '新北', selected: true, width: 100 },\r\n { name: '基隆', selected: true, width: 100 },\r\n { name: '宜蘭', selected: true, width: 100 },\r\n { name: '桃園', selected: true, width: 100 },\r\n { name: '新竹', selected: true, width: 100 },\r\n { name: '苗栗', selected: true, width: 100 },\r\n { name: '臺中', selected: true, width: 100 },\r\n { name: '彰化', selected: true, width: 100 },\r\n { name: '南投', selected: true, width: 100 },\r\n { name: '雲林', selected: true, width: 100 },\r\n { name: '嘉義', selected: true, width: 100 },\r\n { name: '臺南', selected: true, width: 100 },\r\n { name: '高雄', selected: true, width: 100 },\r\n { name: '橋頭', selected: true, width: 100 },\r\n { name: '花蓮', selected: true, width: 100 },\r\n { name: '臺東', selected: true, width: 100 },\r\n { name: '屏東', selected: true, width: 100 },\r\n { name: '澎湖', selected: true, width: 100 },\r\n { name: '金門', selected: true, width: 100 },\r\n { name: '連江', selected: true, width: 100 },\r\n { name: '高雄少年及家事法院', selected: true, width: 160 },\r\n { name: '臺灣高等', selected: true },\r\n { name: '臺中分院', selected: true },\r\n { name: '臺南分院', selected: true },\r\n { name: '花蓮分院', selected: true },\r\n { name: '高雄分院', selected: true },\r\n { name: '金門分院', selected: true },\r\n { name: '智慧財產', selected: true },\r\n { name: '懲戒法院', selected: true },\r\n { name: '法官學院', selected: true },\r\n { name: '最高法院', selected: true },\r\n ]\r\n ]),\r\n '立法院': new JudicialInterpretExecuteAgent('立法院', [\r\n [\r\n { name: '立法院', selected: true, width: 80 },\r\n { name: '人事處', selected: true, width: 80 },\r\n { name: '公報處', selected: true, width: 80 },\r\n { name: '主計處', selected: true, width: 80 },\r\n { name: '法制局', selected: true, width: 80 },\r\n { name: '秘書處', selected: true, width: 80 },\r\n { name: '資訊處', selected: true, width: 80 },\r\n { name: '總務處', selected: true, width: 80 },\r\n { name: '議事處', selected: true, width: 80 },\r\n { name: '預算中心', selected: true, width: 80 },\r\n { name: '國會圖書館', selected: true, width: 160 },\r\n { name: '議政博物館', selected: true, width: 160 },\r\n { name: '中南部服務中心', selected: true, width: 160 },\r\n ],\r\n [\r\n { name: '內政委員會', selected: true, width: 155 },\r\n { name: '交通委員會', selected: true, width: 155 },\r\n { name: '財政委員會', selected: true, width: 155 },\r\n { name: '經濟委員會', selected: true, width: 155 },\r\n { name: '司法及法制委員會', selected: true, width: 155 },\r\n { name: '外交及國防委員會', selected: true, width: 155 },\r\n { name: '教育及文化委員會', selected: true, width: 155 },\r\n { name: '社會福利及衛生環境委員會', selected: true, width: 155 },\r\n ],\r\n [\r\n { name: '程序委員會', selected: true, width: 155 },\r\n { name: '紀律委員會', selected: true, width: 155 },\r\n { name: '修憲委員會', selected: true, width: 155 },\r\n { name: '經費稽核委員會', selected: true, width: 155 },\r\n ]\r\n ]),\r\n '地方政府': new JudicialInterpretExecuteAgent('地方政府', [\r\n [\r\n { name: '臺北', selected: true, width: 80 },\r\n { name: '新北', selected: true, width: 80 },\r\n { name: '桃園', selected: true, width: 80 },\r\n { name: '臺中', selected: true, width: 80 },\r\n { name: '臺南', selected: true, width: 80 },\r\n { name: '高雄', selected: true, width: 80 },\r\n { name: '新竹', selected: true, width: 80 },\r\n { name: '苗栗', selected: true, width: 80 },\r\n { name: '彰化', selected: true, width: 80 },\r\n { name: '南投', selected: true, width: 80 },\r\n { name: '雲林', selected: true, width: 80 },\r\n { name: '嘉義', selected: true, width: 80 },\r\n { name: '屏東', selected: true, width: 80 },\r\n { name: '宜蘭', selected: true, width: 80 },\r\n { name: '花蓮', selected: true, width: 80 },\r\n { name: '臺東', selected: true, width: 80 },\r\n { name: '澎湖', selected: true, width: 80 },\r\n { name: '金門', selected: true, width: 80 },\r\n { name: '連江', selected: true, width: 80 },\r\n { name: '基隆', selected: true, width: 80 },\r\n ]\r\n ]),\r\n // '其他': new JudicialInterpretExecuteAgent('其他', []),\r\n };\r\n agentList: JudicialInterpretExecuteAgent[];\r\n subagentList: JudicialInterpretExecuteSubagent[];\r\n constructor() {\r\n this.agentList = Object.values(this.agents);\r\n\r\n this.subagentList = [];\r\n this.agentList.forEach(a => {\r\n a.subagentList.forEach(sa1 => {\r\n sa1.forEach(sa => {\r\n this.subagentList.push(sa);\r\n });\r\n });\r\n });\r\n }\r\n setupFromSave(selectedAgents: { [key: string]: string[] }): void {\r\n if (Object.keys(selectedAgents).length == 0) {\r\n this.agentList.forEach(a => {\r\n a.subagentFlatList.forEach(sa => {\r\n sa.selected = true;\r\n });\r\n });\r\n\r\n } else {\r\n const dict = {};\r\n this.agentList.forEach(a => {\r\n dict[a.name] = {};\r\n a.subagentFlatList.forEach(sa => {\r\n dict[a.name][sa.name] = sa;\r\n sa.selected = false;\r\n });\r\n });\r\n Object.keys(selectedAgents)\r\n .forEach(key => {\r\n if (key != '其他') {\r\n selectedAgents[key].forEach(name => {\r\n dict[key][name].selected = true;\r\n });\r\n }\r\n });\r\n\r\n }\r\n }\r\n setupFromCondition(condition: JudicialInterpretSearchConditionExecuteAgent): void {\r\n const inputSubagents = condition.subagentList;\r\n inputSubagents.forEach((v, i) => {\r\n this.subagentList[i].selected = v.selected;\r\n });\r\n }\r\n isSelectedAllSubagent(): boolean {\r\n return this.subagentList.every(v => v.selected);\r\n }\r\n isUnselectedAllSubagent(): boolean {\r\n return this.subagentList.every(v => !v.selected);\r\n }\r\n isSelectedAnySubagent(): boolean {\r\n return this.subagentList.some(v => v.selected);\r\n }\r\n getSelectedSubagentCount(): number {\r\n return this.subagentList.filter(v => v.selected).length;\r\n }\r\n}\r\nexport class MemberType {\r\n member_id: string;\r\n picture_url: string;\r\n name: string;\r\n nameStyleColor: string;\r\n}\r\nexport class TeamNoteOpenLog {\r\n name: string;\r\n pictrue: string;\r\n check_in_status: number;\r\n note_open_time: Date | string;\r\n timeString: string;\r\n}\r\nexport enum ConnectionStatusName {\r\n connecting = 0,\r\n connected = 1,\r\n reconnecting = 2,\r\n disconnected = 4\r\n}\r\nexport const SymbolStrings: string = `✲⦿◉●✿()❂★☆✪\r\n◆◇◈《》「」『』【】\r\n§①②③④⑤⑥⑦⑧⑨⑩\r\nⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪ\r\nⅫ▌⋯▲▼▶◀➜➤✓✗\r\n┌└│├∴∵≠↑↓←→`;\r\nexport function getCopySummary$(): Observable {\r\n return NetService.Net.getRaw('summary/get_copy');\r\n}\r\nexport function checkHasCopySummary$(): Observable {\r\n return NetService.Net.get('summary/check_copy');\r\n}\r\nexport function setCopySummary$(data: any): Observable {\r\n return NetService.Net.postRaw('summary/set_copy', data);\r\n}\r\n/** 更新摘要所有狀態,index排序、快最頂最底部摘要 */\r\nexport function updateSummary2Status(summaryBlocks: Summary2Block[]): void {\r\n\r\n // 設定摘要索引號\r\n summaryBlocks.sort((a, b) => a.index - b.index);\r\n summaryBlocks.forEach(block => {\r\n block.summarys.sort((a, b) => a.summary_index - b.summary_index);\r\n });\r\n for (let i = 0; i < summaryBlocks.length; i++) {\r\n const block = summaryBlocks[i];\r\n block.index = i;\r\n for (let j = 0; j < block.summarys.length; j++) {\r\n const summary = block.summarys[j];\r\n summary.summary_block_index = block.index;\r\n summary.summary_index = j;\r\n }\r\n }\r\n\r\n // 設定區塊最上最下摘要\r\n for (let i = 0; i < summaryBlocks.length; i++) {\r\n const block = summaryBlocks[i];\r\n for (let j = 0; j < block.summarys.length; j++) {\r\n const summary = block.summarys[j];\r\n summary.isBlockTop = false;\r\n summary.isBlockBottom = false;\r\n }\r\n\r\n block.summarys[0].isBlockTop = true;\r\n block.summarys[block.summarys.length - 1].isBlockBottom = true;\r\n }\r\n\r\n}\r\n\r\nexport function updateSummary2LinkedArticle(summarys: Summary2[], articleList: LawArticle[]): void {\r\n summarys.forEach(s => {\r\n if (s.summary_link_content_id) {\r\n const article_id2 = s.getLinkContentIdToLawArticleId2();\r\n const article = articleList.find(a => a.source.law_article_id2 == article_id2);\r\n if (article) {\r\n s.linkArticle = article;\r\n s.linkArticleNumber = article.lawSystem.numberText;\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport const fontColorList = [\r\n // ['#fff', '#f00', '#ff0', '#0ff', '#00f', '#60f'],\r\n // ['#019947', '#00fe69', '#0fccbf', '#0166ff', '#f0857d', '#994500'],\r\n // ['#ccc', '#f0f', '#f60', '#0c5', '#356e35', '#a8829f'],\r\n // ['#000', '#c79121', '#57889c', '#92a2a8', '#777', '#c0c'],\r\n\r\n // ['#fff', '#f00', '#f60', '#ff0', '#00fe69', '#019947'],\r\n // ['#ccc', '#f0857d', '#994500', '#c79121', '#0c5', '#356e35'],\r\n // ['#777', '#0ff', '#57889c', '#00f', '#60f', '#f0f'],\r\n // ['#000', '#0fccbf', '#92a2a8', '#0166ff', '#a8829f', '#c0c'],\r\n\r\n ['#fff', '#f00', '#ff0', '#0ff', '#0166ff', '#60f'],\r\n ['#e7e7e7', '#f0857d', '#c79121', '#0fccbf', '#00f', '#a8829f'],\r\n ['#ccc', '#f60', '#00fe69', '#019947', '#57889c', '#f0f'],\r\n ['#000', '#994500', '#0c5', '#356e35', '#92a2a8', '#c0c'],\r\n];\r\nexport const fontColorList2 = [\r\n ['#ffffff', '#ffff99', '#FFFF00', '#FFD966', '#F9CB9C'],\r\n ['#f0857d', '#EAD1DC', '#EA9999', '#e7e7e7', '#cccccc'],\r\n ['#B6D7A8', '#a8829f', '#A4C2F4', '#0fccbf', '#00FFFF'],\r\n ['#99ffff', '#00FF00', '#00fe69', '#00cc55', '#000000'],\r\n];\r\nexport const fontFamilyList = [\r\n { name: '微軟正黑體', value: 'Microsoft JhengHei' },\r\n { name: '微軟雅黑體', value: 'Microsoft YaHei' },\r\n { name: '細明體', value: 'MingLiU' }, // 'MingLiU'\r\n { name: '標楷體', value: 'DFKai-sb' },\r\n];","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-frame-popup-close',\r\n templateUrl: './frame-popup-close.component.html',\r\n styleUrls: ['./frame-popup-close.component.scss']\r\n})\r\nexport class FramePopupCloseComponent implements OnInit {\r\n\r\n @Output() close = new EventEmitter();\r\n @Input() type: number = 1;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n clickClose(): void {\r\n this.close.emit();\r\n // if (this.onClickClose) {\r\n // this.onClickClose();\r\n // }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FramePopupCloseComponent } from './frame-popup-close.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [FramePopupCloseComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [FramePopupCloseComponent]\r\n})\r\nexport class FramePopupCloseModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { FramePopupCloseComponent } from '../frame-popup-close/frame-popup-close.component';\r\n\r\n@Component({\r\n selector: 'app-frame-popup-head',\r\n templateUrl: './frame-popup-head.component.html',\r\n styleUrls: ['./frame-popup-head.component.scss']\r\n})\r\nexport class FramePopupHeadComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FramePopupHeadComponent } from './frame-popup-head.component';\r\n\r\n@NgModule({\r\n declarations: [FramePopupHeadComponent],\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [FramePopupHeadComponent]\r\n})\r\nexport class FramePopupHeadModule { }\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["isNumber","AppCommonStatic","padNumber","number","result","toString","padStart","toLocaleString","getTimeTestArray","nowDate","Date","zoneTick","getTimezoneOffset","todayTickZone","parse","getFullYear","getMonth","getDate","currentYearTickUTC","currentYearTickZone","push","getTime","getTimeTestArray2","tick1","convertTimeTickPastText1","startTickZone","stopTickZone","startDateZone","stopDateZone","todayStartDateZone","todayStartTickZone","oneDayTick","todayStopDateZone","todayStopTickZone","todayHalfTickZone","getHours","getMinutes","hourText","console","log","convertTimeTickToPastTimeText1","targetTickZone","convertTimeTickToPastTimeText2","time","currentDate","todayStartDate","setHours","todayStopDate","targetDate","isToday","todayNoon","isAM","currentYearStartDate","setFullYear","currentYearStopDate","isThisYear","pastTime","minText","year","convertTimeTickToPastTimeText3","currentTime","pastTimeMs","pastTimeSec","pastTimeMin","pastTimeHour","Math","floor","convertTimeTickToTimeText1","ticks","timeString","getSeconds","convertTimeTickToTimeText2","convertTimeTickToTimeText3","convertTimeTickToTimeText4","convertLeftTimeTickToTimeText1","left_time_ticks","ms","hh","left_hh_ms","mm","left_mm_ms","ss","convertLeftTimeTickToTimeText2","convertText_CamelCaseToLowerDash","text","length","temp","toLowerCase","i","chr","charAt","toUpperCase","convert_CamelCase_To_camel_dash_case","split","filter","v","trim","map","word","join","convert_CamelCase_To_camel_case","intToHex36","num","hex36ToInt","hex","parseInt","AppCommonService","constructor","replace","factory","providedIn","environment","AppConfigService","enableSignalrLog","production","_enableSignalrLog","enableNotification","_enableNotification","SystemAnnouncePopupComponent","ActionName","Observable","of","PayStatusId","tap","concatMap","LoginStatus","MaterialHelper","NewUpdatePopupComponent","TeamAnnouncePopupComponent","BlockGuestFunctionPopupComponent","AppComponent","router","appcfg","service","notificationService","idlerService","cookieService","initService","appCommonService","maintenancePopupOpenerService","dangerWarningPopupOpenerService","loginInvalidPopupOpenerService","payTipPopupOpenerService","payService","notifyService","net","swUpdate","matDialog","planService","ngOnInit","refreshLoginStatus","subscribe","userActive","register","target","Root","Note","onComplete","getConnectHub","pipe","c","status","s","value","signalrReconnecting","loginStatus","Guest","isForceSignalrStop","stop","openPopup","onSignlarConnected","next","setTimeout","start","setupSignlaRSystemListener","isLogin$","isLogin","checkPlanStatus","checkSystemAnnounce","addNormal","isEnabled","versionUpdates","evt","type","current","currentVersion","available","latestVersion","activateUpdate","then","openNewUpdatePopup","onOpenPopupBlockGuestFunction","openPopupBlockGuestFunction","ngAfterViewInit","dlRef","openDialog","open","panelClass","width","maxWidth","maxHeight","document","body","clientHeight","autoFocus","disableClose","openTeamAnnoucePopup","openSystemAnnounce","content","height","comp","componentInstance","onClose","close","get","jo","JSON","overwrite_json","prop","title","connectSignalrDelay","enableSignalr","connectHub","signalIniting","signalInited","error","complete","connectSignalr2","testTime","forEach","testPopup","globalMobileCompatibleClickStart","ev","isIOS","touchStartTime","timeStamp","touches","touchStart","changedTouches","item","globalMobileCompatibleClick","currentTouch","distance","sqrt","abs","clientY","clientX","el","elementFromPoint","click","idleClick","$ev","idleMousemove","idleMousewheel","idleKeydown","key","addGetSignlaRSystemListener","sn","isIdle","data","token","idle","sendToServer","duration","logoutPopupBlock","receiveNewNotify","notify_id","closeNotifyPopupTrigger$","signalrOnConnectObserver","create","subsc","signalrSubsc","unsubscribe","handlePayStatusResult","block_time_tick","block_time","buff_time_tick","buff_time","is_continue","pay_status_id","PaidMember","payBlockPopup","instance","closePopup","InBlockTime","popup_opened","OverTime","payStatusCheckLoop","i0","selectors","hostBindings","ctx","SystemAnnouncePopupModule","BrowserAnimationsModule","HttpClientModule","ServiceWorkerModule","CookieModule","SignalRModule","LZStringModule","LZStringService","AppService","NotificationModule","IdlerModule","LoadingIconModule","RootPasswordChangeModule","CaseTagPopupModule","CommentPopupModule","ComposeSearchPopupModule","CreateCategoryPopupModule","CreateSubcategoryPopupModule","DeleteConfirmPopupModule","DoubleLoginPopupModule","EditCategoryPopupModule","EditSnPopupModule","FilterPopupModule","PersonalConfigPopupModule","RenamePopupModule","CompleteSearchPopupModule","RecommendMemberPopupModule","MaintenancePopupModule","DangerWarningPopupModule","LoginInvalidPopupModule","DisconnectedPopupModule","MemberProfileEditPopupModule","FixProfileNotifyPopupModule","PayTipPopupModule","PayTipConfigPersonalPopupModule","PayTipConfigGlobalPopupModule","MemberPermissionConfigPopupModule","ConcatPopupModule","CompleteSearchTipPopupModule","RelateLawRulePopupModule","LawRuleEvolutionPopupModule","SummaryFilterPopupModule","LawRuleEvolutionTimeEditorPopupModule","BookmarkRenamePopupModule","JudgmentHistoryPopupModule","PrintConfigPopupModule","PasswordChangePopupModule","NewUpdatePopupModule","RewardPointTipPopupModule","PhoneSettingPopupModule","LineIdSettingPopupModule","FacebookIdSettingPopupModule","WechatIdSettingPopupModule","TwitterIdSettingPopupModule","EmailSettingPopupModule","MemberProfileChangePopupModule","WebsiteSettingPopupModule","IntroductionSettingPopupModule","FormsModule","SafeUrlPipe","ScrollSmoothDirective","SummaryWindowModule","MatDialogModule","SuccesTipModule","PictureCropPopupModule","PutInNotePopupModule","PutInNoteCheckPopupModule","PutInNoteSuccessPopupModule","TextInputPopupModule","TeamNoteStatusPopupModule","TeamAnnouncePopupModule","EditCategoryPopup2Module","MemberSelectPopupModule","CreateCategoryPopup2Module","FilterMeetMemberPopupModule","CaseDuplicateWarningPopupModule","TeamNoteDownloadLogPopupModule","TeamMemberOptionPopupModule","ConfirmPopupModule","NoteEvaluatePointPopupModule","PermissionConfigPopupModule","ContactSupportPopupModule","NotifyModule","LawRuleFastBagPopupModule","DeviceDetectorService","DeviceCheckerGuard","RootRoutingModule","TeamNoteOpenLogPopupModule","CheckinTeamFilterPopupModule","CasePropertyModule","PayInfoOverSaveLimitPopupModule","PayInfoOverTimeLimitPopupModule","NoteConfigPopupModule","SaveCountLimitPopupModule","PermissionSettingPopupModule","PrivateCasePopupModule","BlockGuestFunctionPopupModule","GuestTimeupPopupModule","AppModule","bootstrap","imports","forRoot","createSignalRConfig","enabled","declarations","i1","i2","i3","NavigationCancel","from","BehaviorSubject","catchError","take","HttpHeaders","SignalRConfiguration","LogPageId","LoginType","LoginResult","PhoneLoginData","http","activatedRoute","_signalR","disconnectedPopupOpenerService","deviceDetectorService","Login","BaseUrlApi","protocol","host","Port","BaseUrlApiNoPort","BaseUrlWeb","location","BaseUrlApiPrint","hostPrint","HostApi","BaseUrlApiStatic","BaseUrlWebStatic","port","FacebookId","hostname","protocolDict","_loginStatus","IsLogin","Logined","PhoneLoginAndNoMobileVersionPermission","FacebookLogin","WaitReview","FixData","AdminLogin","NewSite","PhoneLoginAndHaveMobileVersionPermission","GuestLogined","indexOf","IsGuest","hubName","url","logging","withCredentials","executeEventsInZone","executeErrorsInZone","executeStatusChangeInZone","isGuest$","checkLoginStatus","queryParams","parseQueryString","search","writeCookie","GuestOverTime","removeCookie","href","checkLoginStatus2","token2","getCookie","locationSearchString","querySubString","substring","v2","phoneLogin","phoneNumber","password","phone","post","phoneLoginAndKick","force_kick","phoneLoginFbAccount","fbLogin","fbToken","fbLoginAndKick","logout","remove","days","expireDays","expireDate","setDate","cookieOption","expires","path","put","id","query","id1","lastViewPage","postData","relative_url","cors","customToken","headerData","Authorization","typeName","headers","addError","message","getRaw","param","params","getText","responseType","getBlob","postRaw","setLocal","name","localStorage","setItem","getLocal","getItem","removeLocal","removeItem","connection","createConnection","qs","loginToken","addWarning","r","errors","catch","err","connectHub2","signalrListener","listenFor","removeSignalrListener","stopListening","invoke","getConnectionId","updateFavicon","icon","getElementById","setAttribute","updateTitle","isDesktop","snapshot","force_desktop","redirTo","onBeforeGoUrl","navigate","isredir","queryParamsHandling","replaceUrl","skipLocationChange","AuthGuard","navigationCancel$","events","e","canLoad","route","segments","checkCount","Error","sessionStorage","pathname","canActivate","state","parseUrl","canActivateChild","childRoute","SessionRedirChecker","WaitReviewActiveChecker","FixDataActiveChecker","AdminAuthGuard","PrintGuard","TeamAuthGuard","team_id","p","TeamLessonAuthGuard","RouterModule","DeviceCheckIsDesktopGuard","routes","rl1","loadChildren","m","AppRoutingModule","relativeLinkResolution","exports","JobId","RegisterType","RootApplyMemberService","Phone","requestLawyerCertificateCheck","cert1","cert2","requestPhoneVerifyCodeObserver","checkPhoneVerifyCodeObserver","code","requestEmailVerifyCodeLoginedObserver","requestEmailVerifyCodeObserver","email","checkEmailVerifyCodeLoginedObserver","checkEmailVerifyCodeObserver","checkEmailVerifyCodeLaterObserver","requestApplyMemberObserver","requestFixItemsObserver","requestFixDataObserver","IndictmentCourtId","JudgmentCourtId","JudgmentType","JudgmentSearchResultType","JudicialInterpretCaseType","JudicialInterpretSearchCourtCatalog","JudicialInterpretCourtId","LawRuleCategoryIcon","LawRuleCategory","getIconStyle","LawRuleExamTitleColor","LawRuleExamIndex","getNameStyle","OrderWayCourtLevel","OrderWayJudgDate","OrderWayEditDate","Subcategory","Category","TeamNoteStatusId","FilterCondition","allCategory","allSubcategory","index","keyword","emptySearchKeywords","clearSearchKeywords","searchKeywords","isAllSearchKeywordEmpty","every","toPostData","refresh","category","category_text","unCategory","subcategory","subcategory_text","unSubcategory","a","per_page_note_amount","page_index","pageIndex","order_way_edit_date","orderWayEditDate","order_way_court_level","orderWayCourtLevel","order_way_judg_date","orderWayJudgDate","check_in_past_day","check_in_status","self_check_in_status","member_id","note_publish_status","meet_not_join_member_id_list","meet_join_member_id_list","checkin_member_id","checkin_member_status","getHighlightKeyword","kind","k","reset","None","NewestTop","BookmarkType","CaseTagUpdateRequest","CaseType","CaseTagService","Judgment","searchJudgmentObserver","JudicialInterpret","searchJudicialInterpretObserver","LawRule","Indictment","searchIndictmentObserver","searchObserver","typeTable","updateJudgmentObserver","request","updateJudicialInterpretObserver","updateIndictmentObserver","Serializable","Guid","Issue","newGuid","focusIssueInput","element","edit_issue_input_id","focus","focusAnswerInput","edit_answer_input_id","playHighlight","highlightState","JudgmentProperty","CourtId","CaseTypeId","PropertyId","CourtTypeId","CheckInLawArticle","JudgmentCase","type_name","court_id","court_id_name","courtIdString","typeString","propertyString","property","relate_law_rule_name_list","relate_law_rule_list","list","rs","judgmentService","categoryDict","subcategory_key","subcategoryDict","checkInButtonElement","checkInMenuId","checkInMenuElement","checkInTodayChecked","checkIn","today_checked","toCourtId","toPropertyId","toCourtTypeId","toCaseTypeId","toggleShowCheckInMenu","showCheckInMenu","onCheckInMenuShow","onCheckInMenuHide","checkInCase","checkInTotalCount","checkInStatusClassName","statusClassNameDict","total_count","onCheckIn","V","M","A","O","Subject","JudgmentCase2","NotePutInTeam","SaveStatus","JudgmentService","pullSaveStatusObserver","saveStatus","judgment_note_save_current","lawRule_note_save_current","judicialInterpret_note_save_current","total_summary_save_current","judgment_note_save_max","lawRule_note_save_max","judicialInterpret_note_save_max","total_summary_save_max","getCategoryListObserver","mapedItem","extendObjectFromResponseObject","pullCategoryListObserver","categoryList","getSubcategoryListObserver","pullSubcategoryListObserver","subcategoryList","getStorageNoteListObserver","filterCondition","jcl","convertedList","n","pullStorageNoteListObserver","case_tag_list","sort","b","issue_list","issue","storageNoteTotalCount","count","storageNoteList","storagePageIndex","storageNoteList$","pullStorageNoteListObserver2","extend","note","updateAll","storageNoteList2","getSummaryListObserver","case_id","getNotePutinTeamObserver","case_base","note_id","copy_time","updatePictureStyle","updateTimeText","copyNoteToTeamObserver","team_ids","overwrite","case_type","note_id_list","team_id_list","confirm_overwrite","updateNoteCaseTagListObserver","team_note_id","resortCaseTag","getNoteClassifyRequest","getUpdateNoteClassifyObserver","updateNoteClassifyObserver","getDeleteNoteObserver","deleteNoteObserver","getRenameNoteObserver","name2","renameNoteObserver","getAddCategoryObserver","getEditCategoryObserver","old_category_text","new_category","getDeleteCategoryObserver","getOrderCategoryObserver","order_list","addCategoryObserver","editCategoryObserver","old_category","deleteCategoryObserver","orderCategoryObserver","getAddSubcategoryObserver","getEditSubcategoryObserver","old_subcategory_text","new_subcategory","getDeleteSubcategoryObserver","getOrderSubcategoryObserver","addSubcategoryObserver","editSubcategoryObserver","deleteSubcategoryObserver","orderSubcategoryObserver","getSuggestionCaseReasonObserver","getSuggestionNoteTitleObserver","getSuggestionCaseTagObserver","getSuggestionSummaryTagObserver","getSearchCourtCountProObserver","condition","searchCourtCountProObserver","getSearchCourtCountOneObserver","searchCourtCountOneObserver","searchCourtCountMultiObserver","getSearchProOneObserver","searchProOneObserver","getSearchSimpleListObserver","searchSimpleListObserver","getNoteDataSearchResultObserver","search_keywords","getNoteDataStorageObserver","updateNoteDataStorage","callback","noteIndex","findIndex","sourceNote","updateNoteDataStorageByCategory","updateNoteDataStorageBySubcategory","getCaseTagObserver","broadcastCategoryUpdateObserver","ex_connection_id","broadcastSubcategoryUpdateObserver","updateSummaryObserver","summarySave","addSummaryObserver","deleteSummaryObserver","updateSummaryListOrderObserver","checkInObserver","checkInIndictmentObserver","getCheckInDataCaseObserver","count_past_day","getCheckInDataIndictmentCaseObserver","requestSampleNoteJudgment","downloadNoteFromTeam","force","NoteSummaryListType","SummaryTypeId","JudicialInterpretCaseList","JudicialInterpretCaseList2","JudicialInterpretProperty","JudicialInterpretType","JudicialInterpretCase","caseTypeString","judicialInterpretService","case_reason","case_data","reason","JudicialInterpretCourtCount","cc","counting","finish","JudicialInterpretPropertyIcon","JudicialInterpretCase2","JudicialInterpretService","getSuggestionReasonObserver","caseType","updateCategoryIconStyle","updateSubcategoryIconStyle","updateAnswerIssueList","updateSummaryItemCalssName","updateSaveDateString","updateCheckin","judicial_interpret_note_id","judicial_interpret_id","getSearchCaseTagObserver","countCourtResult","requestSampleNoteJudicialInterpret","Tool","LawRuleCase","summary_type_item_list","list_type","Bookmark","className","item_type","updateCheckInPercentGreen","greenCount","check_in_statistics","law_article_count","checkInPercentGreen","updateModifyDateString","modifyDateString","modify_date","LawRuleType","empty","flatMap","LawRuleFastBag","LawRuleService","LawRule_Now_Name","Current","LawRule_Now_Fulltext","LawRule_Repeal_Name","Repeal","LawRule_Repeal_Fulltext","LawRule_Stop_Name","Stop","LawRule_Stop_Fulltext","NONE","Establish","Implement","Announce","Correction","FulltextCorrection","Expire","Effect","Delete","Additional","noteList$","noteList","getPersonalStorageLawRuleFullNoteListObserver","pullPersonalStorageLawRuleFullNoteList","pullPersonalStorageLawRuleFullNoteListObserver","personalStorageLawRuleFullNoteListHandler","law_rule_id","law_rule_note_id","getFastBagLawRuleCollectObserver","collect","fastBagLawRuleCollectObserver","getFastBagObserver","fastBag","getPullFastBagObserver","pullFastBagObserver","checkAndUpdateFastBagOrder","updateFastBagLocal","fb","sourceSnText","reindexListSn","newSnText","orderRequestData","getOrderRequestData","orderFastBagObserver","fastBag$","getOrderFastBagObserver","getCategoryIndex","categoryIndexList","getCategoryIndexObserver","Object","keys","categoryKey","subcategoryKey","indexList","getExamIndex","examList","exam","option_exam","optionExamList","getExamIndexObserver","extObj","getCountLawRuleTypeObserver","countLawRuleTypeObserver","getSearchLawRuleObserver","searchLawRuleObserver","getLawRuleNameSuggestionObserver","getSearchCountObserver","searchCountObserver","getSearchLawRuleListObserver","searchLawRuleListObserver","updateNoteDataStorageObserver","getSuggestionNoteLawRuleObserver","request_import_fav_law_rule","request_storage_note","request_note_summary_sample","CommentService","getJudgmentObserver","getJudicialInterpretObserver","getLawRuleObserver","getIndictmentObserver","pushCommentRequestObserver","pusher","updateNoteCommentJudgmentObserver","judgment_id","comment","updateNoteCommentLawRuleObserver","updateNoteCommentJudicialInterpretObserver","updateNoteCommentIndictmentObserver","ChildContent","RootMainService","PersonalStorage","CompleteSearch","Management","RecommendFriend","MemberProfileManagement","MyTeam","News","pullDefaultHomeObserver","defaultChildContent","selectChildContent","childContent","selectedChildContent$","PageName","RootManagementService","convertDateStringFormat1","jsonDateString","tick","getLogDevice","ua","lowua","match","getPageLogData","TeamAnnounce","TeamAddMember","TeamMember","TeamSharedStorage","TeamNoteJudgment","TeamNoteJudicialInterpret","TeamNoteIndictment","TeamStorageJudgment","TeamStorageJudicialInterpret","page","_a","team_name","convertPageLogs","logs","_logs","slice","searchMembers","member","CPageLogs","PageLogs","RootPasswordChangeComponent","rootPasswordChangeService","loadingIconService","closeFullScreenLoadingIcon","RequestPasswordChangeKey","checkPassword1","inputPassword1","checkPassword2","inputPassword2","disableConfirmButton","submit","openFullScreenLoadingIcon","PasswordChange","requestChangePasswordObserver","alert","decls","vars","consts","template","CommonModule","MaskFullScreenModule","RootPasswordChangeService","getChangePasswordKeyObserver","requestChangePasswordKeyObserver","getChangePasswordObserver","enableProdMode","library","faFacebookF","faFacebook","faTwitter","faLinkedinIn","faGooglePlusG","faPinterestP","faRedditAlien","faTumblr","faWhatsapp","faVk","faFacebookMessenger","faTelegramPlane","faMix","faXing","faLine","faCommentAlt","faBook","faEnvelope","faCheck","faPrint","faExclamation","faLink","faEllipsisH","faMinus","faLightbulb","faCoffee","faInfo","window","icons","add","__NgCli_bootstrap_1","bootstrapModule","BasePopup","ngAfterContentInit","onAfterContentInit$","clickClose","FramePopupHeadModule","FramePopupCloseModule","EventEmitter","BookmarkRenamePopupComponent","elementRef","popupManagerService","initPopup","sourceText","inputElementRef","nativeElement","dispatchEvent","CustomEvent","clickConfirm","confirm","emit","closeComponent","componentRef","checkKeydown","keyCode","enterKeydown","closeLast","checkDisableConfirmButton","viewQuery","ReactiveFormsModule","CaseDuplicateWarningPopupComponent","dialogRef","CasePropertyComponent","inputs","propertyId","ctx_r6","ctx_r10","CaseTagPopupComponent","caseTagService","initEnd","caseTagList","sourceList","cloneList","reindexSn","keywordFinderLite","inputElement","convertDateTimeToString","date","checkCursorClickClassName","composedPath","HTMLElement","some","classList","contains","checkCursorClickTarget","getElementFromClickPath","find","clickCheck","stringify","clickAddCaseTag","newCaseTag","inputText","reference_count","setText","hasDuplicate","disableAddButton","checkSnOrder","sourceSnList","newSnList","needReindexSn","hasChange","newList","clickDeleteCaseTag","disableSaveButton","saving","clickSave","findTag","searchCaseTag","_keyword","searchedText","searchedKeyword","searchedList","setCaseTagTextToInput","KeywordFinderLiteModule","PipeHighlightModule","Court","CourtBlockId","CourtBlock","CourtType","CaseName","JudicialInterpret_ctypeABC","create2","court_block_id","JudicialInterpret_Court_Court","court_type_id","JudicialInterpret_Court","case_type_id","condition_name","list_name","class_name","JudicialInterpret_ctypeD","JudicialInterpret_Court_BigJudge","JudicialInterpret_ttypeX","JudicialInterpret_Court_Reject","JudicialInterpret_xftype38","JudicialInterpret_Court_XF","JudicialInterpret_xftype39","JudicialInterpret_xftype40","JudicialInterpret_jtype21gc1m134","JudicialInterpret_Grand_Normal","JudicialInterpret_Grand","JudicialInterpret_jtype22gc2m1342","JudicialInterpret_jtype23gc3m134","JudicialInterpret_jtypeA","JudicialInterpret_Precedent_Normal","JudicialInterpret_Precedent","JudicialInterpret_jtypeB","JudicialInterpret_jtypeE","JudicialInterpret_jtype1A","JudicialInterpret_Precedent_Stop","JudicialInterpret_jtype1B","JudicialInterpret_jtype1E","JudicialInterpret_jtypeI","JudicialInterpret_Judgment_V","JudicialInterpret_Judgment","JudicialInterpret_jtypeG","JudicialInterpret_jtypeC01","JudicialInterpret_jtypeO","JudicialInterpret_jtypeJ","JudicialInterpret_Judgment_M","JudicialInterpret_jtypeH","JudicialInterpret_jtypeD01","JudicialInterpret_jtypeP","JudicialInterpret_jtypeR","JudicialInterpret_Judgment_A","JudicialInterpret_jtypeK","JudicialInterpret_jtypeF01","JudicialInterpret_jtypeQ","JudicialInterpret_jtypeU","JudicialInterpret_Judgment_SupremeReference","JudicialInterpret_jtypeV","JudicialInterpret_jtypeS","JudicialInterpret_Judgment_HighReference","JudicialInterpret_jtypeT","JudicialInterpret_dtypeA01","JudicialInterpret_Resolution_V","JudicialInterpret_Resolution","JudicialInterpret_dtypeB01","JudicialInterpret_Resolution_M","JudicialInterpret_dtypeC01","JudicialInterpret_Resolution_A","JudicialInterpret_jtypeL","JudicialInterpret_Discipline_Discipline","JudicialInterpret_Discipline","JudicialInterpret_qtypeA","JudicialInterpret_Seminar_V","JudicialInterpret_Seminar","JudicialInterpret_qtypeG","JudicialInterpret_qtypeB","JudicialInterpret_Seminar_M","JudicialInterpret_qtypeC","JudicialInterpret_Seminar_A","JudicialInterpret_qtypeD","JudicialInterpret_Seminar_Discipline","JudicialInterpret_etypeX01","JudicialInterpret_Execute_Execute","JudicialInterpret_Execute","LawRule_Now","LawRule_Repeal","LawRule_Stop","Judgment_V_D_Taipei","Judgment_Civil_Local","Judgment_Civil","mobile_list_name","Judgment_V_D_Shihlin","Judgment_V_D_New_Taipei","Judgment_V_D_Keelung","Judgment_V_D_Yilan","Judgment_V_D_Taoyuan","Judgment_V_D_Hsinchu","Judgment_V_D_Miaoli","Judgment_V_D_Taichung","Judgment_V_D_Changhua","Judgment_V_D_Nantou","Judgment_V_D_Yunlin","Judgment_V_D_Chiayi","Judgment_V_D_Tainan","Judgment_V_D_Kaohsiung","Judgment_V_D_Qiaotou","Judgment_V_D_Hualien","Judgment_V_D_Taitung","Judgment_V_D_Pingtung","Judgment_V_D_Penghu","Judgment_V_D_Kinmen","Judgment_V_D_Lienchiang","Judgment_V_D_Kaohsiung_Juvenile","Judgment_V_H","Judgment_Civil_High","Judgment_V_H_Taichung","Judgment_V_H_Tainan","Judgment_V_H_Hualien","Judgment_V_H_Kaohsiung","Judgment_V_H_Kinmen","Judgment_V_S","Judgment_Civil_Supreme","Judgment_V_I","Judgment_Intellectual","Judgment_M_D_Taipei","Judgment_Criminal_Local","Judgment_Criminal","Judgment_M_D_Shihlin","Judgment_M_D_New_Taipei","Judgment_M_D_Keelung","Judgment_M_D_Yilan","Judgment_M_D_Taoyuan","Judgment_M_D_Hsinchu","Judgment_M_D_Miaoli","Judgment_M_D_Taichung","Judgment_M_D_Changhua","Judgment_M_D_Nantou","Judgment_M_D_Yunlin","Judgment_M_D_Chiayi","Judgment_M_D_Tainan","Judgment_M_D_Kaohsiung","Judgment_M_D_Qiaotou","Judgment_M_D_Hualien","Judgment_M_D_Taitung","Judgment_M_D_Pingtung","Judgment_M_D_Penghu","Judgment_M_D_Kinmen","Judgment_M_D_Lienchiang","Judgment_M_H","Judgment_Criminal_High","Judgment_M_H_Taichung","Judgment_M_H_Tainan","Judgment_M_H_Hualien","Judgment_M_H_Kaohsiung","Judgment_M_H_Kinmen","Judgment_M_S","Judgment_Criminal_Supreme","Judgment_M_I","Judgment_A_D_Taipei","Judgment_Administrative_Local","Judgment_Administrative","Judgment_A_D_Shihlin","Judgment_A_D_New_Taipei","Judgment_A_D_Keelung","Judgment_A_D_Yilan","Judgment_A_D_Taoyuan","Judgment_A_D_Hsinchu","Judgment_A_D_Miaoli","Judgment_A_D_Taichung","Judgment_A_D_Changhua","Judgment_A_D_Nantou","Judgment_A_D_Yunlin","Judgment_A_D_Chiayi","Judgment_A_D_Tainan","Judgment_A_D_Kaohsiung","Judgment_A_D_Qiaotou","Judgment_A_D_Hualien","Judgment_A_D_Taitung","Judgment_A_D_Pingtung","Judgment_A_D_Penghu","Judgment_A_D_Kinmen","Judgment_A_D_Lienchiang","Judgment_A_H_Taipei","Judgment_Administrative_High","Judgment_A_H_Taichung","Judgment_A_H_Kaohsiung","Judgment_A_S","Judgment_Administrative_Supreme","Judgment_A_I","Judgment_O_P","Judgment_Other_Discipline","Judgment_Other","Judgment_O_C","Judgment_Other_Criminal","Judgment_O_J","Judgment_Other_Court","Judgment_In_D_Taipei","Judgment_Indictment_Local","Judgment_Indictment","Judgment_In_D_Shihlin","Judgment_In_D_New_Taipei","Judgment_In_D_Taoyuan","Judgment_In_D_Hsinchu","Judgment_In_D_Miaoli","Judgment_In_D_Taichung","Judgment_In_D_Changhua","Judgment_In_D_Nantou","Judgment_In_D_Yunlin","Judgment_In_D_Chiayi","Judgment_In_D_Tainan","Judgment_In_D_Kaohsiung","Judgment_In_D_Qiaotou","Judgment_In_D_Pingtung","Judgment_In_D_Taitung","Judgment_In_D_Hualien","Judgment_In_D_Yilan","Judgment_In_D_Keelung","Judgment_In_D_Penghu","Judgment_In_D_Kinmen","Judgment_In_D_Lienchiang","Judgment_In_H","Judgment_Indictment_High","Judgment_In_H_Taichung","Judgment_In_H_Tainan","Judgment_In_H_Kaohsiung","Judgment_In_H_Hualien","Judgment_In_H_Kinmen","_courts","ctypeABC","ctypeD","ttypeX","jtype21gc1m134","jtype22gc2m1342","jtype23gc3m134","jtypeA","jtypeB","jtypeE","jtype1A","jtype1B","jtype1E","jtypeI","jtypeG","jtypeC01","jtypeO","jtypeJ","jtypeH","jtypeD01","jtypeP","jtypeR","jtypeK","jtypeF01","jtypeQ","jtypeU","jtypeV","jtypeS","jtypeT","dtypeA01","dtypeB01","dtypeC01","jtypeL","qtypeA","qtypeG","qtypeB","qtypeC","qtypeD","etypeX01","V_D_Taipei","V_D_Shihlin","V_D_New_Taipei","V_D_Keelung","V_D_Yilan","V_D_Taoyuan","V_D_Hsinchu","V_D_Miaoli","V_D_Taichung","V_D_Changhua","V_D_Nantou","V_D_Yunlin","V_D_Chiayi","V_D_Tainan","V_D_Kaohsiung","V_D_Qiaotou","V_D_Hualien","V_D_Taitung","V_D_Pingtung","V_D_Penghu","V_D_Kinmen","V_D_Lienchiang","V_D_Kaohsiung_Juvenile","V_H","V_H_Taichung","V_H_Tainan","V_H_Hualien","V_H_Kaohsiung","V_H_Kinmen","V_S","V_I","M_D_Taipei","M_D_Shihlin","M_D_New_Taipei","M_D_Keelung","M_D_Yilan","M_D_Taoyuan","M_D_Hsinchu","M_D_Miaoli","M_D_Taichung","M_D_Changhua","M_D_Nantou","M_D_Yunlin","M_D_Chiayi","M_D_Tainan","M_D_Kaohsiung","M_D_Qiaotou","M_D_Hualien","M_D_Taitung","M_D_Pingtung","M_D_Penghu","M_D_Kinmen","M_D_Lienchiang","M_H","M_H_Taichung","M_H_Tainan","M_H_Hualien","M_H_Kaohsiung","M_H_Kinmen","M_S","M_I","A_D_Taipei","A_D_Shihlin","A_D_New_Taipei","A_D_Keelung","A_D_Yilan","A_D_Taoyuan","A_D_Hsinchu","A_D_Miaoli","A_D_Taichung","A_D_Changhua","A_D_Nantou","A_D_Yunlin","A_D_Chiayi","A_D_Tainan","A_D_Kaohsiung","A_D_Qiaotou","A_D_Hualien","A_D_Taitung","A_D_Pingtung","A_D_Penghu","A_D_Kinmen","A_D_Lienchiang","A_H_Taipei","A_H_Taichung","A_H_Kaohsiung","A_S","A_I","O_P","O_C","O_J","In_D_Taipei","In_D_Shihlin","In_D_New_Taipei","In_D_Taoyuan","In_D_Hsinchu","In_D_Miaoli","In_D_Taichung","In_D_Changhua","In_D_Nantou","In_D_Yunlin","In_D_Chiayi","In_D_Tainan","In_D_Kaohsiung","In_D_Qiaotou","In_D_Pingtung","In_D_Taitung","In_D_Hualien","In_D_Yilan","In_D_Keelung","In_D_Penghu","In_D_Kinmen","In_D_Lienchiang","In_H","In_H_Taichung","In_H_Tainan","In_H_Kaohsiung","In_H_Hualien","In_H_Kinmen","courts","result_name","courtBlocks","Judgment_Judgment","Judgment_Decision","LawRule_LawRule","JudicialInterpret_Unified","JudicialInterpret_Solve","JudicialInterpret_Yuan","JudicialInterpret_YuanSolve","JudicialInterpret_Explain","JudicialInterpret_Reject","JudicialInterpret_XF38","JudicialInterpret_XF39","JudicialInterpret_XF40","JudicialInterpret_JudgmentSeuperme","JudicialInterpret_Reference","Indictment_Indictment","Indictment_AppendIndictment","Indictment_SimpleJudgment","Indictment_MergeIntention","Indictment_Other","Decision","Other","D","H","S","I","DJ","HJ","Civil","Criminal","Administrative","Intellectual","caseTypeIdString","courtBlockIdString","courtTypeIdString","assign","getCountText","selected_icon","count_read","CategoryTypeId","typeIdText","type_id","typeIdIconDict","NewCategory","getIconUrlByTypeId","type_id_text","_icon","uncategory","getBackgroundImageUrl","iconUrl","backgroundImage","getIconStyleByTypeId","compare","_b","createFromCategory2","category2","_1","_2","_3","_4","_5","_6","_7","_8","_9","_10","_11","_12","_13","_14","_15","_16","_17","_18","_19","_20","all","Category2","updateIconStyle","sortOutCategoryList","indexOfAll","subcategories","iconStyle","SubcategoryTypeId","NewSubcategory","unsubcategory","OrderSubcategoryList","aCategoryIndex","bCategoryIndex","_aKey","_bKey","createFromSubcategory2","s2","Subcategory2","CheckInJudgment","status_count","isWaitCheckIn","isWaitLoadingData","enableCheckIn","statusNameDict","updateFromDataCase","caseData","total_check_in_count","system_number","system_subnumber","numberHash","updateFromDataNote","noteData","last_check_in_time","last_check_in_status","updateFromDataSystem","systemData","_i","values","reduce","updateFromCheckInLawArticle","ctx_r2","ctx_r5","CheckinFilterMember","CheckinTeamFilterPopupComponent","selectedMember","selectedCheckinStatus","setup","members","baseMembers","updateSearch","_name","isMatch","clearKeyword","selectMember","selectCheckinStatus","onConfirm","ChooseKindItemDirective","appChooseKindItem","onAfterContentInit","appendType","ngOnDestroy","compmentRef","appendChild","SearcherKeywordKind","ctx_r25","ChooseKindComponent","FileSubject","textDescriptionTemplate","fileSubjectTemplate","PointSummary","pointSummaryTemplate","SummaryTag","summaryTagTemplate","IssueSortOut","issueSortOutTemplate","IssueAnswer","issueAnswerTemplate","CaseTag","caseTagTemplate","bookmarkTemplate","Comment","commentTemplate","ComposeSearch","composeSearchTemplate","LawRuleName","lawRuleNameTemplate","LawRuleFulltext","lawRuleFulltextTemplate","JudgmentFulltext","JudicialInterpretFulltext","typeList","buildList","selectedKind","selectKindItem","baseList","prevSelectedKind","select","closeWindow","toggleWindow","clickShowWindow","openWindow","checkClickWindowCloseOrNot","ChooseKindModule","CommentPopupComponent","CommentPopupOpenerService","componentFactoryResolver","injector","appRef","buildPopup","component","resolveComponentFactory","attachView","hostView","onTextChange","textareaElement","querySelector","disableSubmitButton","clickSubmit","InputText","SearcherKeyword","PopupCloseReason","ComposeType","ctx_r8","CompleteSearchPopupComponent","focusInput","inputFirstElement","loadInput","closeReason","clickShowPopup","submitClosePopup","Submit","manuallyClosePopup","ManuallyClose","getLastComponentRef","clearRewrite","inputText1","clear","inputText2","inputText3","saveInput","disable","isEmpty","composeCommand2","selectedTypeItem","Not","composeCommand3","getSearcherKeyword","composeCommandComponent","compose","And","clearTextInput","textInput","save","text1","text2","text3","compose2","compose3","saveJson","saveName","composeTypeItem2","composeTypeItem3","selectType","closeMenu","ComposeCommandModule","trigger","transition","animate","keyframes","style","CompleteSearchTipPopupComponent","copyText","selBox","createElement","position","left","top","opacity","execCommand","removeChild","selectElement","range","createRange","selectNode","selection","getSelection","removeAllRanges","addRange","copyContent","share_text","copyTextElement","copyedState","resetCopy","color","ComposeCommandStyleType","ctx_r3","ComposeCommandComponent","Or","JudgmentSearch","SearchAgain","initValue","getStyleType","styleType","importStyleType","clickSelectType","selectByComposeType","decideClickShowWindow","ctx_r16","ctx_r19","ctx_r22","ctx_r24","ctx_r27","ctx_r28","ctx_r30","ctx_r31","ctx_r33","ctx_r34","ctx_r35","ctx_r36","ctx_r0","_r2","_r7","_r12","ComposeSearchPopupComponent","suggestions1","suggestions2","suggestions3","clear1","clear2","clear3","onKeywordInput1","selectedKindId","chooseKind1","selectedKindIdName","suggestionSubscribe","kindAutocomplete","suggestions","onKeywordInput2","chooseKind2","onKeywordInput3","chooseKind3","clickAutoCompleteOption1","option","clickAutoCompleteOption2","clickAutoCompleteOption3","chooseKind","inputKindList","kindList","MatAutocompleteModule","ConcatPopupComponent","ConfirmPopupComponent","matDialogRef","Normal","desc","SetMemberLevel","iconFromStyle","iconToStyle","TeamNewCase","TeamCaseNewDiscuss","isConfirmed","clickCancel","onCancel","ContactSupportPopupComponent","KeywordFinderLiteComponent","NumberInputerComponent","SubscriptionGroup","ctx_r12","CreateCategoryPopup2Component","isTypeChanged","typeId","selectedTypeId","isTextChanged","isSnChanged","numberInputer","currentNumber","textInputChecker","exwordDict","unsubscribeAll","subscriptions","setCategoryIconList","typeIconDict","iconFileName","categoryIconList1","categoryIconList2","setSubcategoryIconList","subcategoryIconList","clearInput","clickClear","toggleShowMenu","showMenu","selectIcon","updateTypeIconStyle","typeIconStyle","NumberInputerModule","CreateCategoryPopupComponent","CreateCategoryPopupOpenerService","duplicateAlertText","confirmText","defaultTypeId","defaultSn","defaultText","sourceReferenceCount","maxSn","tempCategory","substantiveTypeIdTextList","proceduralTypeIdTextList","updateNumber","iconWindowElementRef","getTypeIcon","checkDuplicate","CreateSubcategoryPopupComponent","CreateSubcategoryPopupOpenerService","selectedCategoryText","ctx_r4","tempSubcategory","typeIdList","DangerWarningPopupComponent","DangerWarningPopupOpenerService","reload","features","DeleteConfirmPopupComponent","DeleteConfirmPopupOpenerService","DeleteConfirmPopupType","Summary","SummaryBlock","TeamMessage","AttachLawRule","popupType","deleteType","PipeSafeInnerhtmlModule","DisconnectedPopupComponent","DisconnectedPopupOpenerService","DoubleLoginPopupComponent","instantLogin","loginAndKick","outputs","PageChange2Component","KeywordFinderComponent","ctx_r15","ctx_r18","ctx_r20","CategoryComponent","editCategoryPopup2Service","selectedCategory","noteCategory","noteSubcategory","selectedSubcategory","isInSort","isWaitSortConfirm","pagechange","tipDirection","config","perPageAmount","enableRefresh","onPageChange","refreshList","countHandler","keywordFinder","keywordFinderSubmitSubscription","keywordFinderClearSubscription","jumpToItem","resultList","searchKeyword","listIndex","targetPageIndex","ceil","snList","startSn","itemIndex","toggleMenuShow","showMenuItem","selectItem","isItemSelected","onAddItem","sortConfirmCheck","snMin","snMax","min","max","updateNumberText","EditCategory","needRefresh","newCategory","handleObserver","splice","getItemListOrderList","sortObserver","sortCategoryObserver","onEditItem","sourceCategoryName","newTypeId","newName","newIndex","tempList","onDeleteItem","onAutoSort","sourceOrderDict","typeIdCompare","localeCompare","onSaveSortResult","onRestoreSort","itemList","EditCategoryPopup2Service","EditCategoryPopup2Component","selectedTabIndex","selectTabIndex","setNoteCategory","setListsAndNoteCategory","sourceCategoryList","sourceSubcategoryList","json","setEvents","updateCategoryListObserver","addSubcategorrObserver","editSubcategory","sortSubcategoryObserver","SubcategoryComponent","PageChange2Module","KeywordFinderModule","list1","selectedCategoryName","updateSubcategoryListFromCategory","resetSubcategoryListIndex","isSubcategory","newSubcategory","category_sn","sourceSubcategoryName","ati","bti","tr","PageChangeComponent","forkJoin","ctx_r32","editCategoryPopupService","createCategoryPopupOpenerService","deleteConfirmPopupOpenerService","leftList","hasAutoSort","virtualList","startIndex","middleList","rightList","pageChange","currentIndex","updateStartIndex","pageRefresh","pullAllList","keywordSearch","searchedText$","orderCheckAlert","categorySearchKeyword","updateAllList","update","category_list","perPageItemAmount","findCategoryPage","getCategoryIconStyle","selectCategory","toggleMenu","editItemElement","openedMenuElement","checkElementHasClass","checkCursorClickTargetMenu","checkClickMenuCloseOrNot","note_category","note_subcategory","openCreateCategoryPopup","compRef","addCategoryListObserver","rtConnId","pls","pullAllListObserver","inListItem","openEditCategoryPopup","editedCategory","editCategoryListObserver","pullNoteListObserver","subcategory_list","openDeleteCategoryPopup","autoOrder","subcategorySearchKeyword","vList","orderList","iconList","aIconIndex","oldIconMapToNewIcon","bIconIndex","confirmOrder","orderCategoryRequestData","orderCategoryListObserver","recatchSelectedItem","revertOrder","EditCategoryTabId","EditCategoryPopupService","EditCategoryPopupComponent","addListener","signalrListeners","clearListener","selectedTab","tab_id","selectTab","tab","PageChangeModule","selectSubcategory","inputSubcategory","SubcategoryOrderRequestData","createSubcategoryPopupOpenerService","disableAddSubcategory","findSubcategoryPage","cloneSubcategoryList","categoryIndexDict","categoryA","categoryB","categoryCp","categorySubcategoryBlock","cs","sortFunc","typeIdCp","newSubcategoryOrderIndexDict","newOrderFullSubcategoryList","ci","currentOrderedSubcategoryList","hasUnSubcategory","orderSubcategoryListObserver","getSubcategoryIconStyle","openCreateSubcategoryPopup","addSubcategoryListObserver","openEditSubcategoryPopup","lastSn","sourceCategory","editedSubcategory","editSubcategoryListObserver","openDeleteSubcategoryPopup","EditSnPopupComponent","EditSnPopupOpenerService","timer","BezierEasing","ElementScroll","findParentScrollerElement","hasAttribute","tagName","parentElement","intoViewStep","topOffset","scrollContainerElement","scrollContainerId","getAttribute","scrollingElement","containerRect","getBoundingClientRect","_topOffset","parseFloat","fps","scrollTime","stepCount","easing","sourceScrollTop","scrollTop","targetRect","scollLength","percent","step","targetContainerScrollTop","scrollTo","intoView","toRange","startElement","startContainer","EmailSettingPopupComponent","confirm$","ExtNumber","isNumberAndBiggerThen","cn","getNumber","contentText","isNaN","FacebookIdSettingPopupComponent","FilterMeetMemberPopupComponent","setMemberNotJoinToFilter","selectedNotJoinMember","selectedJoinMember","setMemberJoinToFilter","syncScrollTopToRight","$event","scrollLockRight","memberListRightElement","memberListLeftElement","syncScrollTopToLeft","scrollLockLeft","cancel","onSubmit","clearSelectedMember","FilterPopupService","FilterPopupTabType","FilterPopupResult","ctx_r14","FilterPopupComponent","filterPopupService","selectedType","selectedCategory$","selectedSubcategory$","get_categoryList","get_subcategoryList","sourceSelectedCategory","sourceSelectedSubcategory","isUserCategory","uc","isUserSubcategory","usc","resetCategory","rehandlePageChanger","resetSubcategory","resetAll","listBlockCategory","listblockSubcategory","displayCount","disableSubmit","ListBlockCategoryModule","ListBlockSubcategoryModule","ListBlockTeamMemberModule","ListBlockJoinDiscussModule","FilterPopupType","ListBlockCategoryComponent","pullCategoryList","ListBlockJoinDiscussComponent","ListBlockSubcategoryComponent","ListBlockTeamMemberComponent","FixProfileNotifyPopupComponent","check","isDesktopDevice","isTest","isMobileDevice","isMobileHost","toMobileSite","GuestTimeupPopupComponent","random","IdlerService","common","getLastActiveTime","isActive","localStorageName","setActiveTimeNow","setActiveTime","clearTimeout","userIdle","idleTime","IndictmentService","hostType","items","updateNoteDataStorageToList","updateNoteData","inputNote","InitNameTrigger","InitWatcher","hasHit","triggerAllTarget","targetTrigger","t","t2","triggered","InitService","completeWatcherList","watcherList","w","getIdIndex","idIndex","watcher","_watcher","InputCharLimitDirective","onKeyDown","event","inputChars","preventDefault","IntroductionSettingPopupComponent","ctx_r26","JudgmentHistoryPopupComponent","commentPopupOpenerService","commentService","sanitizer","currentCaseId","editCommentObserver","openNote","list_noCase","no_data","groupId","courtIdLevelDict","list_local","list_high","list_supreme","list_intel","sortHistoryByDate","noHistory","dateA","judg_date_year","judg_date_month","judg_date_day","dateB","checkCursorClickId","editComment","disableEdit","openCommentPopup","newComment","trimText","edit_comment","onDestroy","setSfyUrl","sfyUrl","bypassSecurityTrustUrl","PipeSafeUrlModule","TeamNoteStatus","collected","edit_date","lastTeamPublishStatusId","last_team_publish_status","Unpublished","updateJudgeDateStrings","judgDateString","judg_date","dates","case_date","updatePropertyId","propertyIdString","updatePropertyIconStyle","propertyIconStyle","iconName","updateHistory","historyList","h","case_text","judgmentCourtIdName","case_year","case_word","case_number","case_property_class","propertyIdClass","case_property_id","updateCourtName","icid","courtId","court","courtList","courtName","categoryIconStyle","category_type","subcategoryIconStyle","subcategory_type","hasAnswerIssueList","answer_text","updateOpenDateString","note_open_time","noteOpenTimeString","editDateTimeString","convertTimeText","check_in_data","updateCaseTag","updateIssue","updateAuthorPicture","authorPictureStyle","team_member_picture","updateShareStatus","isShared","team_share_view_count","share_info","is_valid","share_id","click_count","updateTeamNotePublish","team_publish_status","team_note_publish_status","updateData","updateHasSameCaseMemberIdDict","hasSameCaseMemberIdDict","has_same_case_member_ids","memberId","updateBase","j","setValueCase","setValueNote","isUncategory","isUnsubcategory","createFromOldJudgmentCase","oldJudgmentCase","createFromNote","judgmentCase","judgmentNote","has_note","TeamNoteCopyLog","updateCaseDateString","date_year","month","date_month","day","date_day","dateString","updateCaseName","caseName","case_title","meet_number","meet_title","case_name","Unified","Solve","Yuan","Explain","Precedent","JudgmentSeuperme","Resolution","Discipline","YuanSolve","Reject","Seminar","Reference","issue_text","updateSummary","summary","summary_list","updateOpenNoteTimeString","updateTeamNoteCopyLog","team_note_copy_log","updateText","createFromOldJudicialInterpretCase","oldJudicialInterpretCase","judicialInterpretCase","judicialInterpretNote","JudicialInterpretCourtCatalogId","JudicialInterpretCourtBlockId","JudicialInterpretCourtGroupId","JudicialInterpretCourt","getCatalogName","catalogId","catalog","JudicialInterpretCourtCatalogs","JudicialInterpretCourtGroup","JudicialInterpretCourtBlock","JudicialInterpretCourtCatalog","judicialInterpretCourts","catalogName","blockName","blockId","Court_BigJudge","ctypeA","Court_Court","ctypeB","ctypeC","Court_Reject","xftype38","Court_XF","xftype39","xftype40","jtype21gc1m1","Grand_Normal","Grand","jtype21gc1m3","jtype21gc1m4","jtype22gc2m1","jtype22gc2m3","jtype22gc2m4","jtype22gc2m2","jtype23gc3m1","jtype23gc3m3","jtype23gc3m4","Precedent_Normal","Precedent_Stop","Judgment_V","jtypeC0","jtypeC1","Judgment_M","jtypeD0","jtypeD1","Judgment_A","jtypeF0","jtypeF1","Judgment_SupremeReference","Judgment_HighReference","dtypeA0","Resolution_V","dtypeA1","dtypeB0","Resolution_M","dtypeB1","dtypeC0","Resolution_A","dtypeC1","Discipline_Discipline","Seminar_V","Seminar_M","Seminar_A","Seminar_Discipline","etypeX0","Execute_Execute","Execute","etypeX1","JudicialInterpretCourtGroups","conditionName","resultName","JudicialInterpretCourtBlocks","getJudicialInterpretCourtIdsFromCourtGroupId","ids","ids2","getJudicialInterpretCourtGroupIdsFromCourtBlockId","getJudicialInterpretCourtGroupIdsFromCourtCatalogId","getJudicialInterpretCourtBlockIdsFromCourtCatalogId","JudicialInterpretSearchCourtGroup","JudicialInterpretSearchCourtGroupCountResult","showClearButton","onChange","textChange","ctx_r1","obj","LawArticleContentLine","textTrim","partIndex","header","headerType","headerIndex","headerIndexText","deepIndex","newline","isTable","subLawArticleLinesCountTotal","subLawArticleLines","LawArticleContentSpliterFlag","inPart","inTable","lastType","typeDeepIndex","lastTypeIndex","prevType","currentPartIndex","prevTypeStartIndex","resetTypeDeepIndex","LawArticleLineMatcher","typeRegex","RegExp","LawArticleHeaderNumberDict","LawArticleContentPreHandler","lines","resultLines","lineIndex","line","lineTrimed","matcherKeys","startMatcherKeys","lineMatcherKeys","tableMatcherKeys","problemCount","fineCount","prevResult","prevLineEnd","prevMatchKey","lastMatchKey","hasMatch","matchType","matchKey","matcher","test","LawArticleContentSpliter","flag","groupLawArticleContentLineList","deepParentLaLine","prevLaLine","parentLaLine","laLine","convertLawArticleContentLineGroupToDom","isSub","ulElement","subUlElement","liElement","textElement","textContent","convertLawArticleContentLinesToListDom","headerElement","convertLawArticleTextToDom","spliter","lineGroup","runPreHandle","runSplit","runDeepIndex","preHandleKeys","handlerIndex","laMatcher","tableStartMatcherKeys","tableMiddleMatcherKeys","tableEndMatcherKeys","isListLines","matchResult","isAllListLine","行_頭","resetLineStartIndex","tableTypeDict","prevTypeLine","prevNewLine","reList","LawArticleBlockShowType","LawArticleItem","LawArticleBlock","Default","showHistory","showBlock","showBlockType","showBlockManual","Auto","selected","checkBlockInViewWindowClient","lawArticleListService","selectedLawArticleBlock","closeHistory","closeRelate","showRelate","clickBlock","selectBlock","scrollIntoView","offsetTop","offsetTopGetter","renderDistance","viewTop","viewBottom","bottom","checkInLawArticle","convertLawRule_LawArticleBlocks","lawRule","lawSystemArticleList","system","block","lastLawArticle","lawArticleDict","source","aid","lawSystem","lawArticleItemList","aids","lawArticle","lawLegislationDict","lid","lawArticleItem","TextStyle","LawArticleContent","elementId","setElementFromContentBuildDatas","datas","contentRootElement","hasPara","lineElement","mlCount","ml_count","tiCount","ti_count","mlV","tiV","marginLeft","textIndent","paragraph_number","pre","textIndexNodeList","getTextIndexNodeListFromElement","setElementFromContentString","childrenList","Array","children","updateHtml","html","outerHTML","sourceHtml","updateHighlightHtml","highlightKeyword","highlightHtml","_element","innerHTML","normalize","elementText","textNodes","findTextNodesFromElement","handleTextNodeIndex","handleTextNodeStart_IndexOfAllText","handleTextNodeStop_IndexOfAllText","keywordStart_IndexOfAllText","keywordStop_IndexOfAllText","loopCount","node","nodeValue","beforeKeywordNode","textNodeKeywordStartIndex","keywordNode","splitText","tempNode","createTextNode","before","highlightContainer","highlightStyleColor","after","textNodeKeywordStopIndex","afterKeywordNode","updateTextStyleList","textStyleList","getTextStyleListFromElement","expandTop","isFirst","lawArticleBlock","LawStatus","LawRuleStatusId","hasStatusModify","lawLegislation","lawStatusModify","getDateText","hasStatusPublic","lawStatusPublic","hasStatusForce","lawStatusForce","hasStatusEffect","lawStatusEffect","hasContent","law_article_content","hasReason","law_article_reason","numberName","law_system_number","law_system_subnumber","law_system_title","contentId2","law_article_id2","is_content_custom","isCustom","law_article_content_custom","law_source","startsWith","reasonText","getStatusText","subTime","ifNullStatusText","law_status_year","law_status_month","law_status_day","law_status_name_id","idName","LawArticleListService","SearcherLawRuleFulltextResultTypeId","delay","lawArticleBlock_r8","ctx_r39","ctx_r87","ctx_r90","lawArticleItem_r67","ctx_r94","ctx_r98","ctx_r101","ctx_r105","ctx_r108","LawArticleListComponent","relateLawRulePopupOpenerService","lawRuleService","blockDict","blockElementIdDict","listHeightPx","listHeight","elementRect","setupList","initDelay","setupSubsc","enableViewRender","listElementRef","_selectedLawArticleBlock$","updateAllBlockVirtualTopAndSize","toggleHistory","showAllHistory","hideAllHistory","toggleRelate","lawRelateRule","waitLawRelateRequest","requestRelateSystemList","getRelateSystemListObserver","law_system_id2","lawRelateSystems","relateGroupList","groupLawRelateSystem","lockLawArticle","lawArticleContent","lockedLawArticleContent","contentEditable","unlockLawArticle","checkRightClick","cancelBubble","stopPropagation","stopImmediatePropagation","checkMouseup","ctrlKey","getRangeAt","lockedElement","targetElement","getParentClassElement","Text","selectionChanged","selectedLawArticleContent","rangeCount","lawArticleEditableContentElement","commonAncestorContainer","lawArticleContentIdDict","textSelectionChange$","highlightFromFulltextSearchResultList","Title","blockElement","titleElement","convertTextIndexToRange","textIndex","emElement","extractContents","insertNode","emElementList","highlightedLawArticleContentList","clearKeywordHighlight","querySelectorAll","selectNodeContents","contents","deleteContents","setSummaryHighlightMask","startTextIndex","endTextIndex","contentElement","canvasElement","padding","bRect","wRect","summaryHighlightCanvasWrapperElement","getContext","fillStyle","textIndexList","selectedTextIndexList","tRange","ti","setStart","offset","setEnd","rect","round","fillRect","removeSummaryHighlightMask","scrollToRange","setLinkedSummaryIcon","selectBlockLinkedSummary","selectLinkedSummaryList","selectBlockLinkedSummaryList","windowResized","updateRect","addOffset","setupFilter","makeListFilter","allList","openRelateCase","lawRuleName","law_rule_name","keyword1","keyword2","law_system_number_ch","law_system_subnumber_ch","encodeURI","checkinArticleBlock","LawArticleListModule","updateListFromLawRule","getLawArticleBlockFromLawRule","blockSidDict","sid","lawArticleId2ContentDict","setSelectedLawArticleBlock","selectedLawArticleBlock$","selectedBlockLinkedSummaryIndex","updateBlockLinkedSummaryCount","linkedSummaryList","linkedContentSummaryList","linkedArticleSummaryList","linkedLawArticleContent","linkStartTextIndex","linkEndTextIndex","selectedLinkedSummaryBlock","selectedLinkedSummaryBlock$","selectedLinkedSummaryList","selectedLinkedSummaryList$","ctx_r21","ctx_r29","LawRuleEvolutionPopupComponent","lawRuleEvolutionTimeEditorPopupOpenerService","visableDate","contentBuilder","onArticleNumberClick","contentBuildDict","content_2nl","law_legislation_id2","getStatusDateText","openTimeEditorPopup","focusStatus","ConvertLegislationContentToSafeText","rawtext","resultText","clickArticleNumber","LawLegislationTime","LawRuleEvolutionTimeEditorPopupComponent","LawRuleEvolutionTimeEditorPopupOpenerService","LawStatusSource","inputPublicYear","inputPublicMonth","inputPublicDay","inputForceYear","inputForceMonth","inputForceDay","inputEffectYear","inputEffectMonth","inputEffectDay","inputPublicYearElementRef","inputForceYearElementRef","inputEffectYearElementRef","checkEnableSaveButton","checkDateValid","isValidDate","Boolean","checkStatusTime","nyear","nmonth","nday","public_year","public_month","public_day","force_year","force_month","force_day","effect_year","effect_month","effect_day","updateLawLegislationTimeObserver","LawRuleFastBagItem","LawRuleFastBagPopupComponent","editSnOpenerService","updateList","getEmptyList","selectMenuItem","itemElement","emptyList","fill","emptyItem","moveItemSn","fromSn","toSn","sourceIndex","sourceItem","targetIndex","openEidtSnPopup","filterList","lastListItem","OrderSn","cancelCollect","EditSn","fast_bag","checkCursorClickMenuButton","openLawRuleNote","requestImportFavLawRule","onRequestImportFavLawRule","LawArticleSource","LawArticle","LawLegislation","LawRelateSystem","_getRelateSystemListObserver","lawRelateSource","lawRelateSystem","numberText","contentChildrenList","contentHtml","numberResult","LawSystem","LawSystemLevelId","LawSystemSource","convertLawRuleSourceToLawRule","lawRuleSource","isMergeLawRule","MergeLawRuleId","law_legislation_list","law_status_modify","law_status_public","law_status_force","law_status_effect","lawLegislationList","legislationSource","legislation","law_legislation_content","law_system_list","lastLawLegislation","lawSystemList","systemSource","lawSystemDict","parent_sid","parent","childs","isArticle","law_system_level_id","條","getNumberTextFull","numberTitle","getNumberTitle","titleText","law_article_list","lawArticleList","articleSource","article","lawSystemArticleDict","childLawArticles","lawSystemTree","LawArticleBuildLineData","lawStatus","LwExt","replaceCharAt","newchar","ChineseNumberType","ChineseNumber","ChineseToArabic","numberString","regexAllNumber","Number","stringBuilder","chrIndex","Base","chNumChr","chineseNumberBaseDict","Level","chineseNumberLevelDict","level","zeros","padEnd","unitNumberChar","chineseNumberTenLevelDict","escapeRegExp","string","iosScreenHighFixer","htmlElement","addEventListener","cancelable","setInterval","scrollHeight","innerHeight","LawRuleDataRange","LawRuleData","getClickEventPath","checkClickPathTarget","checkClickPathClassName","checkClickTarget","checkClickClassName","checkIsMobileDevice","userAgent","navigator","vendor","LineIdSettingPopupComponent","AreaLoadingIconComponent","LoadingIconComponent","showLoadingIcon","showFullScreenLoadingIcon","showFullScreenLoadingIcon$","msgText$","LoadingIconService","showAreaLoadingIcon$","showAreaLoadingIcon","buildLoadingIconComponentRef","openAreaLoadingIcon","areaOpenedFromName","areaLoadingIconComponentRef","closeAreaLoadingIcon","detachView","destroy","openedFromName","updateMsgText","LoginInvalidPopupComponent","LoginInvalidPopupOpenerService","MaintenancePopupComponent","MaintenancePopupOpenerService","shutdownTimeTick","ctx_r7","shutdownTime","getShutdownTimeText","MaskFullScreen","MaskFullScreenComponent","styleTag","buildStyleElement","openedMask","htmlScrollTop","documentElement","_dlRef","commonDialogConfig","PaidInfo","MemberPermissionConfigPopupComponent","rootManagementService","paid_member_comment","enable_time","paid_member_pass_time","expire_time","paid_member_expire_time","is_enable","enable_time_text","expire_time_text","paid_member_log","paidLogs","pl","log_time","hour","sec","MemberProfileChangePopupComponent","ProfileEditAddress","ProfileEditGoal","ProfileEditHelp","ProfileEditBirthday","ProfileEditJob","ProfileEditNickname","ProfileEditPicture","UpdateMemberProfileRequest","ctx_r40","ctx_r42","ctx_r45","ctx_r48","ctx_r51","ctx_r9","ctx_r54","ctx_r57","ctx_r11","ctx_r60","ctx_r63","ctx_r13","ctx_r66","ctx_r69","ctx_r72","ctx_r75","ctx_r17","ctx_r78","ctx_r81","ctx_r84","ctx_r89","ctx_r97","item_r91","item_r102","ctx_r106","MemberProfileEditPopupComponent","rootApplyMemberService","memberService","rootMainService","Picture","ngxCroppie","pictureFileInputElementRef","Nickname","Job","Birthday","Address","Goal","Help","profile","updateEditedProfile","editedProfile","steps","updateProfile","json1","json2","checkInputDone","checkInput","MemberProfile","updateMemberProfile","NgxCroppieModule","address","selectedCity","checkClickCloseMenu","selectCity","city","tryUpdateBirthdayProfileToText","onInput","birthday","tryGetBirthdayText","getBirthdayText","birthdayText","tryParseBirthdayText","bTexts","textArr","checked","goalList","goal","goalItem","hasOwnProperty","helpList","help","helpItem","LawCollegeStudent","LawMasterStudent","LawPhdStudent","OtherDeptStudent","CertifiedLawyer","TraineeLawer","BankingLaw","InsuranceLaw","GeneralLaw","JudicialCivilServant","AdministrationCivilServant","OtherJob","PrepareNationExam","PrepareNationExamNotLaw","LawProfessor","NotLawProfessor","jobs","jobList","profileJob","job","selectJob","jobInput1Text","jobdetail1","jobInput2Text","jobdetail2","jobInput3Text","jobdetail3","updateJobInput","lawyerCertDuplicate","selectedJob","checkSelectedInJobs","checkSelectedJobInputs","inputCount","jobInputCount","inputList","jobInputText","checkLawyerCertificate","lawyerCertCheckResult","requestCheckLawyerCertificate","cert1Num","cert2Num","waitCheckedlawyerCert","nickname","getNgxCroppie","getPictureFileInputElementRef","boundary","viewport","showZoomer","enableOrientation","enforceBoundary","defaultImageUrl","picture","resultImageUrl","getPictureStyle","bgUrl","openFileSelector","imageSelected","file","files","enableCrop","reader","FileReader","onload","imageUrl","readAsDataURL","turnLeft","rotate","turnRight","confirmCrop","cropSubscription","newResult","MemberSelectPopupComponent","isAllSelected","memberList","selectedMemberIds","selectAll","setSelected","MemberHeader","getName","MemberService","setMemberHead","get_time","pictureStyleUrl","reward_point","rewardPointString","complete_search","has_team","is_admin","getMemberHeaderData","mh","pullHeaderObserver","_memberHeader","memberHeader","memberHeader$","pullShareHeaderObserver","getWaitReviewData","requestRecommendData","requestRecommendMemberList","requestRecommendPassedMemberList","requestMemberProfile","requestMemberProfileByTeam","requestMemberProfileById2","member_id2","getNoteStatus","getNoteStatusByTeam","getNoteStatusById2","getTimeStatus","getTimeStatusByTeam","getTimeStatusById2","getLastReviewMemberProfile","pullRewardPointInfo","rpi","rewardPointInfo","pullPermission","permissions","_p","finalize","UrlQueryParser","AppServiceDesktop","ConnectionStatusName","NetService","disconnected","Net_","ProtocolInit","browser","isLocal","isDesktopHost","ApiHostInit","facebookId","apiUrl","apiHost","IsOnline","IsLocalOrTest","IsLocal","IsTest","Net","isOnline","isLocalOrTest","setApiPort","toDesktopSite","credentials","getRawAbs","checkToken","signalrStart","connectionStatus","connectionStatusUpdater","statusName","statusNameString","connecting","connected","onConnectionConnected","reconnecting","connectionErrorUpdater","connectionCheckLoop","getConnectionStatus","signalrSend","signalrAddListener","signalrRemoveListener","reloadPage","Croppie","NgxCroppieComponent","size","imgUrl","_croppie","bindToCroppie","points","defaultZoom","imageEdit","croppieOptions","zoom","bind","outputFormatOptions","res","degrees","NoteConfigPopupComponent","blockGuest","NoteEvaluatePointItem","point","NoteEvaluatePointPopupComponent","selectedPointItem","selectPoint","confirmPoint","hasConfirmEvaluate","onConfirmPoint","MessageItem","add_time","remove_time","keep_time","MessageType","NotificationComponent","showItemCount","maxShowItemCount","msgList","msgList$","l","convertMessageTypeToClassName","getMessageTime","getMilliseconds","NotificationService","enable","removeExpireMessage","sourceLength","addMessage","msg","Warning","NotifyTypeId","race","switchMap","mergeAll","PutInNoteCheckPopupComponent","PutInNoteSuccessPopupComponent","ctx_r43","ctx_r52","ctx_r71","ctx_r82","ctx_r92","ctx_r110","ctx_r117","ctx_r120","NotifyComponent","indictmentService","unReadCount","is_read","listNotify","newMessageCountString","newMessageCount","isGuest","newNotifyId","receiveNotify$","notifySubject","updateNotifyListObserver","newNotify","waitShowNotifyList","runAgainTrigger$","windowShowRunning","currentNotify","windowShow","windowOpenAnimationDone$","windowShowKeepTime","triggerCloseNotifyPopup$","windowCloseAnimationDone$","getNotifyTemplate","notify","notifyText","ReceiveTeamInvite","notifyReceiveTeamInvite","SendTeamInvite","notifySendTeamInvite","notifyTeamAnnounce","notifyTeamNewCase","notifyTeamCaseNewDiscuss","TeamNotePublish","notifyTeamNotePublish","TeamNoteAuthorDownload","notifyTeamNoteAuthorDownload","updateNotfiyList","loading","pullNotifyList","hasUnread","toggleNotifyWindow","showNotifyWindow","markReadAllNotify","markAllNotifyRead","setNotifyReadClick","setNotifyRead","deleteNotify","toggleNotifyRead","onWindowAnimationStart","isWindowAnimating","onWindowAnimationDone","closeNotifyPopup","closeNotify","deleteAllNotify","confirmJoinTeam","is_reply","reply_result","rejectJoinTeam","openTeam","openTeamIfAgree","openTeamNewCase","noteTitle","note_title","team_note_title","note_type","openTeamCaseNewDiscuss","authorDownload","downloadNoteObserver","CopyNote","is_open_downloaded","openCopySuccessPopup","openConfirmOverwritePopup","result2","description","rootClass","emptyClick","Notify","NotifyService","getNotifyList","ns","isConfirm","notifyData","invite_id","hasSetMin","MAX_VALUE","hasSetMax","initNumber","inputNumberString","sub","wheel","checkLimit","updateResultNumberText","onNumberChange","PageChangeConfig","enableBack","enableFirst","enablePrev","enableNext","enableLast","disableAll","enableTips","lastPageIndex","showFirst","showPrev","showNext","showLast","initCount","initPageNumber","enableHoverEffect","onFirst","gotoPage","onPrev","pi","onNext","onLast","prevPageIndex","onRefresh","onBack","totalCount$","totalCount","lastIndex","updateEnableButtons","displayTotalCount$","displayTotalCount","currentIndex$","clickGoToIndex$","initTotalCount","isLast","hasPrev","hasNext","clickRefresh","clickBack","back","first","clickGoToPage","prev","last","goToPageSlient","tipBack","forceDisableAllPageChangeButton","ChangePasswordRequest","PasswordChangePopupComponent","inputCheckCode","codeError","inputCheckPassword1","password1Error","inputCheckPassword2","password2Error","checkCode","codePass","password1Pass","password2Pass","confirmChange","ValidateOnBlurModule","PayInfoOverSaveLimitPopupComponent","device","enableNoteDisplay","enableSummaryDisplay","PayInfoOverTimeLimitPopupComponent","PayTipConfigGlobalPopupComponent","limit_time","paid_buff_time","PayTipConfigPersonalPopupComponent","limit_time_min","limit_time_type","source_limit_time_min","default_limit_time_min","PayTipPopupComponent","PayTipPopupOpenerService","interval","blockToTime","remainingBlockTime","remainingTime","remainingFreeTime","enableClose","tipsText","isContinue","textUpdateTimer","remainingBlockChecked","remainingFreeChecked","remainingBlockTimeText","updatePayTipPopupTime","requestUpdatePayStatus","waitRequest","doNotUseLastClose","PayService","isPaidMember","isBlockSystem","nowTime","InFreeTime","getPayStatus","updatePayStatus","status_checked","setPayStatus","PermissionId","PermissionData","PermissionConfigPopupComponent","ShareNote","EvaluateNote","EditNoteMeet","DeleteNote","RemoveMember","DeleteTeamMessage","InviteMember","EditTeamNote","UpdateAnnounce","ShortcutNote","LawBookEdit","togglePermission","permission","PermissionSettingPopupComponent","usage_time","judgment_note_save","lawRule_note_save","judicialInterpret_note_save","total_summary_save","lawRuleCheckIn_permission","lawRulePrint_permission","IsInPlan","plan_expire_date_input","usage_time_current","usage_time_max","searchAll_permission","searchAll_permission_open_date","judgmentNotePrint_permission","judgmentNotePrint_permission_open_date","lawRulePrint_permission_open_date","lawRuleCheckIn_permission_open_date","newSiteLogin_permission","newSiteLogin_permission_open_date","judicialInterpretExecuteNote_permission","judicialInterpretExecuteNote_permission_open_date","newMobileVersion_permission","newMobileVersion_permission_open_date","plan_job","plan_type","plan_start_date","plan_expire_date","summaryTypeCount","onUpdateParameter","onUpdatePermission_searchAll","onUpdatePermission_judgmentNotePrint","onUpdatePermission_lawRulePrint","onUpdatePermission_lawRuleCheckIn","onUpdatePermission_newSiteLogin","onUpdatePermission_judicialInterpretExecuteNote","onUpdatePermission_newMobileVersion","onUpdatePlan","ps","getPlanSetting","usage_time_input","judgment_note_save_input","lawRule_note_save_input","judicialInterpret_note_save_input","total_summary_save_input","judgmentNotePrint_permission_open_date_time","lawRulePrint_permission_open_date_time","lawRuleCheckIn_permission_open_date_time","newSiteLogin_permission_open_date_time","judicialInterpretExecuteNote_permission_open_date_time","newMobileVersion_permission_open_date_time","plan_start_date_current","plan_expire_date_current","plan_start_date_input","plan_start_date_input_string","convertDateToInputDateString","plan_expire_date_input_string","plan_start_date_text","plan_expire_date_text","isOverPlanDate","summary_save_type_count","onParameterChanged","enableParameterConfirmButton","enableParameterResetButton","onPlanChanged","isPlanChanged","checkEnablePlanConfirmButton","onCommentChanged","enableCommentClearButton","enablePlanConfirmButton","confirmSaveParameter","resetParameter","updatePermission_searchAll","updatePermission_lawNoteSummaryFilter","onUpdatePermission_lawNoteSummaryFilter","lawNoteSummaryFilter_permission","updatePermission_judgmentNotePrint","updatePermission_lawRulePrint","updatePermission_lawRuleCheckIn","updatePermission_newSiteLogin","updatePermission_judicialInterpretExecuteNote","updatePermission_newMobileVersion","selectPlanJob","showJob","onPlanUpdateSetting","checkPlanChanged","selectPlanType","showPlan","setting","levelChangeWarning","after365DayTime","onPlanDateInputUpdate","toTimeString","planSetting","free","vip","confirmSavePlan","clearComment","getSummaryIconPath","itemIcon","convertDateText","showLogInfo","isLock","showLogInfoItem","checkOnClick","PersonalConfigPopupComponent","personalConfigPopupService","isTeam","personalConfig","editPersonalConfig","copyToEdit","confirmEdit","SettingContentStorageHomeComponent","SettingContentDisplayModeComponent","SettingContentOrderWayComponent","DisplayMode","PersonalConfig","Simple","updateFromData","pc","storageHome","displayMode","PersonalConfigPopupService","updatePersonalConfig","pushPersonalConfigObserver","getPersonalConfigObserver","pullTeamPersonalConfigObserver","personalConfig$","pullPersonalConfigObserver","pushTeamPersonalConfigObserver","selectMode","mode","defaultPersonalConfig","selectCourtLevel","order","selectJudgDate","selectEditDate","PhoneSettingPopupComponent","telError","mobileError","checkTelPhone","checkMobilePhone","tel_number","phone_number","regex","fromEvent","ctx_r23","PictureCropPopupComponent","x","y","right","selectOfficialPhoto","photo","img","Image","setImage","cropImage","src","onImageFileChange1","inputEvent","selectedFile","imageBase64String","fileList","fr","dataurl","imgCropSquareSize","setImageParameter","resizeImage","updateImageLimitPosition","base64String","convertImageToBase64","imgSourceSize","imgSize","imgSizeRatioBase","minSizeLength","imgSizeRatioMax","canvas","drawImage","dataUrl","toDataURL","ratio","resultRatio","imgWidth","imgHeight","updateAdjustThumbPosition","barWidth","ratioPercent","imgSizeRatioCurrent","pos","sizeAdjustThumbLeft","sizeAdjustThumbStyle","updateMousedownPoint","mousedownPointSource","screenX","screenY","mousemoveSubscription","mouseupSubscription","me","buttons","imgPositionLast","imgPositionSource","mousedownPointCurrent","imgPositionCurrent","hw","halfLimitLength","currentImgTop","overLength","currentImgBottom","currentImgLeft","currentImgRight","imgMoverStyle","addRatio","subRatio","dragSizeAdjustThumb","resultLeft","movementX","setSizeAdjustThumbPosition","offsetX","rotateImageLeft","rotateImage","rotateImageRight","dreg","_img","translate","PI","imgSizeRatio","setTransform","clearRect","leftTopX","leftTopY","cropImageBase64String","confirmCropResult","onConfirmCrop","PipeHighlightPipe","transform","pattern","bypassSecurityTrustHtml","pure","PipeSafeInnerhtmlPipe","PipeSafeUrlPipe","bypassSecurityTrustResourceUrl","PlanStatus","PlanStatusName","PlanService","pullPlanStatus","save_status","createFromResponse","planStatus","pullPlanStatusByTeam","pullPlanStatusById2","id2","checkPlanStatusName","IsFreePlan","IsFreeUsageTimeOver","FreePlanOverTime","IsPlanExpire","PlanDateExpired","OverPlanAvailableTime","eid","pele","openPlanOverMaxUsageTimePopup","openPlanExpirePopup","openPlanOverMaxUsageTimePopup2","planOverMaxUsageTimePopup","append","overLayContainerElement","enableFreeTimeExpire","dynId","afterOpened","planExpirePopup","enablePlanTimeExpire","enableInPlanOver","planJobName","planTypeName","getJobName","getPlanStartDateString","dateTicks","getPlanExpireDateString","PopupManagerService","canCloseList","PrintConfig","PrintConfigPopupComponent","_url","loadSetting","togglePrintRangeAll","printConfig","fulltext","saveSetting","setFont","font","setRowNumber","rownumber","setHomePage","homepage","isDisablePrintButton","savedSetting","isFileFulltext","openPrintWindow","PrivateCasePopupComponent","PutInNotePopupComponent","team_list","selectedTeam","toggleTeamSelect","team","getSelectedTeamList","RecommendMemberPopupComponent","passed","getRegisterTimeText","tipPosition","RelateLawRulePopupComponent","RelateLawRulePopupOpenerService","containerScrollTop","containerElement","onscroll","updateGoTopButtonTop","lrs","lawRuleList","lawArticleListComponents","lac","enableDate","enableLawRuleName","_lac","selectedBlock","selectedLawArticleListComponent","convertLawSystemToNumber","convertLawSystemListToNumberText","scrollToNumber","goTop","behavior","goTopElement","RenamePopupComponent","sourceText2","RewardPointTipPopupComponent","unread_point","SaveCountLimitPopupComponent","IsReachNoteSaveLimitJudgment","IsReachNoteSaveLimitLawRule","IsReachNoteSaveLimitJudicialInterpret","IsReachSummarySaveLimitTotal","getJudgmentNoteSaveCountPercent","getLawRuleNoteSaveCountPercent","getJudicialInterpretNoteSaveCountPercent","getTotalSummaryCountPercent","getJudgmentNoteSaveMaxString","getLawRuleNoteSaveMaxString","getJudicialInterpretNoteSaveMaxString","getTotalSummarySaveMaxString","IsJudgmentNoteSaveUnlimit","IsLawRuleNoteSaveUnlimit","IsJudicialInterpretNoteSaveUnlimit","IsTotalSummarySaveUnlimit","to","propName","getOwnPropertyDescriptor","fromResponseObject","resp","group","SuccesTipComponent","setTip","successTipAnimationState","successTipText","successTipTime","play","playEnd","destoryComponent","SummaryFilterDisplayModeId","SummaryType","SummaryFilterPopupComponent","typeDict","WriterSummary","LawSummary","ProfessorSummary","StudentSummary","GeneralSummary","PracticeSummary","GlossarySummary","HelpSummary","IssueSummary","ExamSummary","ReviseSummary","CaseSummary","summaryTypeList","summaryTypeRow","All","summaryTypes","st","idText","afterOnInit","updateIsSelectedAll","selectShowMode","isShowAllSummary","isShowSelectedArticleSummary","isSelectedAll","clickApply","onApply","summaryListService","blockWrapperViewId","selectedSummaryBlock","show","isBlockWrapperLoaded","isBlockWrapperLoaded_","defaultLoadBlockWrapper","selectSummaryBlock","deleteSummaryBlock","newSummaryAfter","newSummartAfter","SummaryComponent","SummaryBlockComponent","summaryBlock","SummarySave","SummaryCopy","SummaryGistId","SummaryConvert","saveListToBlockList","saves","summary_block_index","blockIndex","summaryBlockList","summary_index","ownerName","summary_owner_name","ownerPicture","summary_owner_picture","editTime","summary_edit_time","summary_title","summary_content","summaryType","summary_type_id","summary_link_range","summary_tag_list","tagList","summary_gist_id","gistId","saveListToBlockListKeepSummaryId","summaryId","summary_id","summaryToSave","summary_owner_member_id","ownerMemberId","summary_add_time","addTime","summary_open_copy","isOpenCopy","summary_learn_training_title","learnTrainingTitle","summary_learn_training_content","learnTrainingContent","summary_learn_training_open_copy","learnTrainingOpenCopy","tag","summary_link_content_id","linkedLineNumber","saveToSummary","linkRange","summrayTag","summaryToCopy","copySummary","SummaryGist","class_","idString","Important","Decree","Analyze","Conclusion","entries","Dict","SummarySpace","SummarySpaceTypeId","SummaryListComponent","selectedSummary","updateSummaryBlockView","updateElementBlocksLoad","movingSummary","movingSummary$","enableMovingSummary","setupMovingSummaryCanvas","movingSummaryLineCanvas","updateMovingSummarySpaceLine","sideScrollSubscription","scrollElement","summaryListElementRef","scroll_update_tick","scrollTriggerSideLength","scrollSpeed","mousePosition","summaryList","isNewSummary","summarySpaceList","movingSummarySpace","summarySpace","isSelf","isSameBlock","listElement","_spaceList","_ss","FirstBlockTopOutside","_ss1","LastOutSide","blockRect","SingleFirstInside","_ss2","SingleFirstBottomInside","SingleChildTopInside","SingleChildInside","nextSummarySpace","nextTop","targetSpace","lastSummarySpace","canvasRect","moveSummaryPosition","offsetRect","offsetSummaryRect","summaryRect","offsetBlockRect","blankHight","blankTop","blankTopCenter","beginPath","lineWidth","strokeStyle","moveTo","lineTo","stroke","blankPaddingVert","blankPaddingHoz","summaryBlockWrapperElementList","selectSummaryBlockElement","selectedSummaryBlockElement","selectSummaryElement","selectedSummaryElement","outSummaryClick","disableCancelSelect","selectSummary","showTypeList","summaryTypeElementRef","closeTypeList","summaryMenuElementRef","showGistMenu","gistElementRef","closeGistMenu","summaryBlockComponentList","summaryComponentList","isShowSymbolWindow","symbolGadgetElementRef","titleTextElementRef","contentTextElementRef","isFirstTopOut","shiftKey","moveSummaryToSpace","setSelectedSummaryBlockAndSummary","updateMovingSummary","movingMouse","textualizeOneLinePasteData","clipText","clipboardData","getData","types","clearData","setData","SummaryListModule","SummaryListService","setupEditorMode","enableEdit","enableTopRightMenuDisplay","enableBottomToolbarDisplay","enableCopySummarySwitchDisplay","enableCopyLearnTrainingSwitchDisplay","enableCopySummaryButtonDisplay","enableCopyLearnTrainingButtonDisplay","enableTextCopyDisplay","setupReaderMode","updateSummaryTypeList","summaryTypeFlatList","recalcAllSummaryOrder","summaryIndex","newSummary","enableEditContent","updateHasCopySummary","updateSummaryBlockList","focusTitleInput","newSummartLast","linkedInfo","cfg","newSummartLastObserver","deleteSummary","deleteSummary$","selectedSummary$","setSummaryblockList","summaryBlockList$","updateSummaryListShow","lastFilterSetting","typeIdDict","selectedTypes","showAllType","editing","displayModeId","lawRuleShowAll","updateSummaryListShowWithLastSetting","getFlatSummaryList","getLinkedSummaryList","autoSortSummaryListByLawContent","aLLAC","bLLAC","aSystem","bSystem","firstSummary","autoSortSummaryListByLineNumber","aLn","bLn","moveSummaryBlockToIndex","holder","moveSummaryBlockToSummaryBlock","targetSummaryBlock","moveSummaryOutSummaryBlock","moveSummaryToSummaryBlock","targetBlock","sourceBlock","targetSummarySpace","targetBlockIndex","targetSummaryIndex","moveEndSummary$","checkingHasCopySummary","checkHasCopySummaryObserver","hasCopySummary","setCopySummary","setCopySummaryObserver","setCopySummary2Observer","getCopySummaryObserver","setCopySummaryObserver2","getCopySummaryObserver2","summaryBlockElementRef","PlaintiffSummary","DefendantSummary","AppellantSummary","AppelleeSummary","PetitionerSummary","ResistSummary","ResistAgainSummary","JudgeSummary","OriginalSummary","PublicProsecutorSummary","ComplainantSummary","PrivateProsecutorSummary","WitnessSummary","ExpertWitnessSummary","ParticipantSummary","FactSummary","EvidenceSummary","CompetentAuthoritySummary","SampleSummary","gist","isIssueType","isOneInputRowType","linkLawArticleContentId","linkedNumberText","linkMode","isDuplicateTag","newTagText","hasTag","hasClipboard","checkingClipboard","editContent","editTag","showContent","canAddSummary","beforeAddSummaryCheck","toggleGistMenu","selectGist","summaryValueChange$","toggleTypeList","selectSummaryType","_titleText","_contentText","editTitleText","editContentText","disableEditContent","confirmEditContent","newSummaryConfirmEdit$","summaryConfirmEdit$","cancelEditContent","disableConfirmEditContent","updateTitleText","updateContentText","enableEditTag","_tagList","disableEditTag","hasChangeTagList","confirmEditTag","cancelEditTag","disableConfirmNewTag","addTag","deleteTag","instant","getLawArticleContentLinkedRange","copyingSummary","copySummaryOnline$","copySummary$","copyLearnTraining","pasteSummary","pastingSummary","updateOpenCopy","isOpen","updateLearnTrainingOpenCopy","TextCopy","SymbolStrings","ctx_r41","ctx_r49","ctx_r50","ctx_r53","ctx_r55","ctx_r61","ctx_r77","ctx_r79","ctx_r88","ctx_r91","ctx_r93","ctx_r95","ctx_r104","ctx_r109","ctx_r111","ctx_r112","ctx_r113","ctx_r114","symbolRowList","symbolStrings","symbolRow","symbolList","hasSummaryMoving","showSummaryToolBar","enableTextCopyTitleDisplay","enableTextCopyContentDisplay","selectHighlightType","startNode","inputRange","isOpenCopyLearnTraining","onComponentInit","runCaretUpdater","clickSummary","focusContentInput","focusTagInput","tagInputElementRef","caretUpdateSubsc","copyTitle","copy","textCopyed$","getEditTime","enableMoveSummary","titleDoubleClick","contentDoubleClick","enableEditTitleText","enableEditContentText","updateInputRange","updateCaret","tagDoubleclick","toggleSymbolWindow","insertSymbol","insertTextNode","collapse","cloneRange","textRect","caretStyle","toggleOpenCopySummary","toggleOpenCopyLearnTraining","clickTopCopySummary","isCopySummaryLoginAlert","onSummaryCopyed","clickTopCopyLearnTraining","clickPasteSummary","clickDeleteTag","addNewTag","changeSummaryType","typeItem","SummaryWindowComponent","summaryWindowService","translateX","selectedSummaryType","loadingSummaryList","windowTitle","showMenuList","menuList","summaryListComponent","onSummarySelected","addSummary","updateSummaryListOrder","hideClickWindow","cancelFixWindow","onClickCloseWindow","hideWindow","windowShowed","toggleMenuList","updateMenuList","summaryTypeAll","recoveryType","SummaryWindowService","_option","showWindowObserver","subscriber","onWindowShow","onWindowAfterShow","hideWindowObserver","windowHideLock","onWindowHide","onWindowAfterHide","showWindow","updateMenuTypeOrderDict","typeOrderDict","typeIndex","TeamMemberOptionPopupComponent","setAdmin","onSetAdmin","setAdminPermission","onSetAdminPermission","setNormal","onSetNormal","removeMember","onRemoveMember","timeTick","dateText","TeamNoteDownloadLogPopupComponent","TeamNoteOpenLog","TeamNoteOpenLogPopupComponent","backgroundColor","borderWidth","display","legend","animation","lightBarStyle1","lightBarStyle2","lightBarStyle3","lightBarStyle0","checkInStatusDict","totalMemberCount","chartData","statusPercent1","setFilterCheckin","selectedFilterCheckInStatus","ChartsModule","TeamNoteStatusPopupComponent","dateNumber","hr","statusText","Finish","WaitFix","teamPictureStyle","team_picture","time_text","textarea","ex","warn","TextInputPopupComponent","TextIndexNode","TextStyleNodeFilter","acceptNode","textStyleTagNameDict","nodeName","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","TextStyleType","parseSaveString","saveString","texts","Bold","Underline","textStyle","start_text_index","end_text_index","walker","createTreeWalker","SHOW_TEXT","nextNode","getStyleNodeListFromElement","SHOW_ALL","textNodeList","textChar","skipChars","tin","getTextIndexNodeListFromText","startTextIndexNode","endTextIndexNode","convertTextIndexToRangeForLawArticleList","convertTextIndexToRangeFromTextIndexList","convertRangeToTextIndex","startOffset","regexSkip","_range","headLength","startTin","rangeText","convertRangeToTextIndexForLawArticleList","startNodeIndex","childNodes","endNodeIndex","endContainer","endOffset","endNode","convertRangeToTextIndexFromTextIndexList","styleNodeList","en","textLength","innerText","FontFamily","ForeColor","BackColor","createHighlightCanvasFromRange","colorHexToRGBA","alpha","_hex","g","setElementTextStyle","face","u","span","toSaveString","clone","ts","jsTick","TwitterIdSettingPopupComponent","paramStrings","q","getCurrentUrlQuertParams","ParamsToUrlString","ValidateOnBlurDirective","onFocusout","validateOnBlur","WebsiteSettingPopupComponent","WechatIdSettingPopupComponent","TabButton","ListItem","SearchListTypeItem","FullPageNoteInfoTabId","JudgmentCourtIdLevelDict","JudgmentSearchResultCourtTypeIdName","convertLawSystemSourceToNumber","ListViewItem","ListViewPart","SearcherResultItemLawRuleSystem","getCategoryText","getSubcategoryText","getNoteCategory","baseCategory","getNoteSubcategory","baseSubcategory","getNoteCategoryText","getNoteSubcategoryText","SearchResultCourt","caseNameCourt","courtBlockId","SearchResultGroup","SearchResultType","escapeKeyword","getKeywordRegexp","rawKeyword","keywordRegexp","KeywordRow","convertKeywordToJudgmentCaseName","keywordString","cnMatchString","allChineseNumber","cnRegexp","convertedKeyword","m2","exec","JudicialInterpretSearchCourtBlock","JudicialInterpretSearchCourtCondition","enableSelectAll","courtGroups","JudicialInterpretSearchCondition","JudicialInterpretExecuteAgent","subagentList","subagentFlatList","isSelectedAllSubagent","getSelectedSubagentCount","JudicialInterpretExecuteSubagent","JudicialInterpretSearchConditionExecuteAgent","agentList","agents","sa1","sa","setupFromSave","selectedAgents","dict","setupFromCondition","inputSubagents","isUnselectedAllSubagent","isSelectedAnySubagent","MemberType","getCopySummary$","checkHasCopySummary$","setCopySummary$","updateSummary2Status","summaryBlocks","summarys","isBlockTop","isBlockBottom","updateSummary2LinkedArticle","articleList","article_id2","getLinkContentIdToLawArticleId2","linkArticle","linkArticleNumber","fontColorList","fontColorList2","fontFamilyList","FramePopupCloseComponent","FramePopupHeadComponent","ngContentSelectors"],"sourceRoot":"webpack:///"}